<!-- HTML header for doxygen 1.8.10-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<title>NATS C Client with JetStream and Streaming support: Types</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="customdoxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;" >
   <div id="projectname">NATS C Client with JetStream and Streaming support
   &#160;<span id="projectnumber">3.10.0-beta</span>
   </div>
   <div id="projectbrief">The nats.io C Client, Supported by Synadia Communications Inc.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__types_group.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle"><div class="title">Types</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct____nats_client_config.html">__natsClientConfig</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An initial configuration for NATS client. Provides control over the threading model, and sets many default option values.  <a href="struct____nats_client_config.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnats_msg_list.html">natsMsgList</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of NATS messages.  <a href="structnats_msg_list.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnats_metadata.html">natsMetadata</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A type to represent user-provided metadata, a list of k=v pairs.  <a href="structnats_metadata.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_pub_options.html">jsPubOptions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_placement.html">jsPlacement</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_external_stream.html">jsExternalStream</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_source.html">jsStreamSource</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_re_publish.html">jsRePublish</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_subject_transform_config.html">jsSubjectTransformConfig</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_consumer_limits.html">jsStreamConsumerLimits</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_config.html">jsStreamConfig</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_lost_stream_data.html">jsLostStreamData</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_state_subject.html">jsStreamStateSubject</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_state_subjects.html">jsStreamStateSubjects</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_state.html">jsStreamState</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_peer_info.html">jsPeerInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_cluster_info.html">jsClusterInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_source_info.html">jsStreamSourceInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_alternate.html">jsStreamAlternate</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_info.html">jsStreamInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_info_list.html">jsStreamInfoList</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_stream_names_list.html">jsStreamNamesList</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_consumer_config.html">jsConsumerConfig</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_consumer_sequence_mismatch.html">jsConsumerSequenceMismatch</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_sub_options.html">jsSubOptions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_sequence_pair.html">jsSequencePair</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_sequence_info.html">jsSequenceInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_consumer_info.html">jsConsumerInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_consumer_info_list.html">jsConsumerInfoList</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_consumer_names_list.html">jsConsumerNamesList</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_consumer_pause_response.html">jsConsumerPauseResponse</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_a_p_i_stats.html">jsAPIStats</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_account_limits.html">jsAccountLimits</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_tier.html">jsTier</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_account_info.html">jsAccountInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_msg_meta_data.html">jsMsgMetaData</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_pub_ack.html">jsPubAck</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_pub_ack_err.html">jsPubAckErr</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_direct_get_msg_options.html">jsDirectGetMsgOptions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_fetch_request.html">jsFetchRequest</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_options_pull_subscribe_async.html">jsOptionsPullSubscribeAsync</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_options_publish_async.html">jsOptionsPublishAsync</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_options_stream_purge.html">jsOptionsStreamPurge</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_options_stream_info.html">jsOptionsStreamInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_options_stream.html">jsOptionsStream</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_options.html">jsOptions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structkv_config.html">kvConfig</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structkv_watch_options.html">kvWatchOptions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structkv_purge_options.html">kvPurgeOptions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structkv_entry_list.html">kvEntryList</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of KeyValue store entries.  <a href="structkv_entry_list.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structkv_keys_list.html">kvKeysList</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of KeyValue store keys.  <a href="structkv_keys_list.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaf88dca0a18efb5c5e994d265a9f04aec" id="r_gaf88dca0a18efb5c5e994d265a9f04aec"><td class="memItemLeft" align="right" valign="top">typedef struct __natsConnection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaf88dca0a18efb5c5e994d265a9f04aec">natsConnection</a></td></tr>
<tr class="memdesc:gaf88dca0a18efb5c5e994d265a9f04aec"><td class="mdescLeft">&#160;</td><td class="mdescRight">A connection to a <code>NATS Server</code>.  <br /></td></tr>
<tr class="separator:gaf88dca0a18efb5c5e994d265a9f04aec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga57a4b8c7109e2773878655722ce028aa" id="r_ga57a4b8c7109e2773878655722ce028aa"><td class="memItemLeft" align="right" valign="top">typedef struct __natsStatistics&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga57a4b8c7109e2773878655722ce028aa">natsStatistics</a></td></tr>
<tr class="memdesc:ga57a4b8c7109e2773878655722ce028aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Statistics of a <a class="el" href="group__types_group.html#gaf88dca0a18efb5c5e994d265a9f04aec" title="A connection to a NATS Server.">natsConnection</a>.  <br /></td></tr>
<tr class="separator:ga57a4b8c7109e2773878655722ce028aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga87158ec63b4f90f69e20451624ea01d8" id="r_ga87158ec63b4f90f69e20451624ea01d8"><td class="memItemLeft" align="right" valign="top">typedef struct __natsSubscription&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga87158ec63b4f90f69e20451624ea01d8">natsSubscription</a></td></tr>
<tr class="memdesc:ga87158ec63b4f90f69e20451624ea01d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interest on a given subject.  <br /></td></tr>
<tr class="separator:ga87158ec63b4f90f69e20451624ea01d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadcab54026c4ed78f344ce03ce31bb61a" id="r_gadcab54026c4ed78f344ce03ce31bb61a"><td class="memItemLeft" align="right" valign="top">typedef struct __natsMsg&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gadcab54026c4ed78f344ce03ce31bb61a">natsMsg</a></td></tr>
<tr class="memdesc:gadcab54026c4ed78f344ce03ce31bb61a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure holding a subject, optional reply and payload.  <br /></td></tr>
<tr class="separator:gadcab54026c4ed78f344ce03ce31bb61a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabcc48b40a81fe302188f4ee06ea9c54e" id="r_gabcc48b40a81fe302188f4ee06ea9c54e"><td class="memItemLeft" align="right" valign="top">typedef struct __natsOptions&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gabcc48b40a81fe302188f4ee06ea9c54e">natsOptions</a></td></tr>
<tr class="memdesc:gabcc48b40a81fe302188f4ee06ea9c54e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Way to configure a <a class="el" href="group__types_group.html#gaf88dca0a18efb5c5e994d265a9f04aec" title="A connection to a NATS Server.">natsConnection</a>.  <br /></td></tr>
<tr class="separator:gabcc48b40a81fe302188f4ee06ea9c54e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga206c3d4d6f4f6f96fd2cae53a3df31c1" id="r_ga206c3d4d6f4f6f96fd2cae53a3df31c1"><td class="memItemLeft" align="right" valign="top">typedef char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga206c3d4d6f4f6f96fd2cae53a3df31c1">natsInbox</a></td></tr>
<tr class="memdesc:ga206c3d4d6f4f6f96fd2cae53a3df31c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique subject often used for point-to-point communication.  <br /></td></tr>
<tr class="separator:ga206c3d4d6f4f6f96fd2cae53a3df31c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad29b6af20b875a1b7890ab8f0675287d" id="r_gad29b6af20b875a1b7890ab8f0675287d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct____nats_client_config.html">__natsClientConfig</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gad29b6af20b875a1b7890ab8f0675287d">natsClientConfig</a></td></tr>
<tr class="memdesc:gad29b6af20b875a1b7890ab8f0675287d"><td class="mdescLeft">&#160;</td><td class="mdescRight">An initial configuration for NATS client. Provides control over the threading model, and sets many default option values.  <br /></td></tr>
<tr class="separator:gad29b6af20b875a1b7890ab8f0675287d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd5523161ec3783e79719cb9a9a66b5b" id="r_gafd5523161ec3783e79719cb9a9a66b5b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structnats_msg_list.html">natsMsgList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gafd5523161ec3783e79719cb9a9a66b5b">natsMsgList</a></td></tr>
<tr class="memdesc:gafd5523161ec3783e79719cb9a9a66b5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of NATS messages.  <br /></td></tr>
<tr class="separator:gafd5523161ec3783e79719cb9a9a66b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b454f3c6ac697a3cdc5bdd3c9ece12b" id="r_ga3b454f3c6ac697a3cdc5bdd3c9ece12b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structnats_metadata.html">natsMetadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga3b454f3c6ac697a3cdc5bdd3c9ece12b">natsMetadata</a></td></tr>
<tr class="memdesc:ga3b454f3c6ac697a3cdc5bdd3c9ece12b"><td class="mdescLeft">&#160;</td><td class="mdescRight">A type to represent user-provided metadata, a list of k=v pairs.  <br /></td></tr>
<tr class="separator:ga3b454f3c6ac697a3cdc5bdd3c9ece12b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf12cdd24c6cc23a57c20466c92ff8c1" id="r_gaaf12cdd24c6cc23a57c20466c92ff8c1"><td class="memItemLeft" align="right" valign="top">typedef struct __jsCtx&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaaf12cdd24c6cc23a57c20466c92ff8c1">jsCtx</a></td></tr>
<tr class="separator:gaaf12cdd24c6cc23a57c20466c92ff8c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7bbea3575d35dcdbfc9b766b04269eb7" id="r_ga7bbea3575d35dcdbfc9b766b04269eb7"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_pub_options.html">jsPubOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga7bbea3575d35dcdbfc9b766b04269eb7">jsPubOptions</a></td></tr>
<tr class="separator:ga7bbea3575d35dcdbfc9b766b04269eb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49d1138fac9da8b85d00a367081e91c9" id="r_ga49d1138fac9da8b85d00a367081e91c9"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_placement.html">jsPlacement</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga49d1138fac9da8b85d00a367081e91c9">jsPlacement</a></td></tr>
<tr class="separator:ga49d1138fac9da8b85d00a367081e91c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef6601477f6456bebc229f7f38982a6c" id="r_gaef6601477f6456bebc229f7f38982a6c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_external_stream.html">jsExternalStream</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaef6601477f6456bebc229f7f38982a6c">jsExternalStream</a></td></tr>
<tr class="separator:gaef6601477f6456bebc229f7f38982a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab4c43c87d81917aab748a50eee028449" id="r_gab4c43c87d81917aab748a50eee028449"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_source.html">jsStreamSource</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gab4c43c87d81917aab748a50eee028449">jsStreamSource</a></td></tr>
<tr class="separator:gab4c43c87d81917aab748a50eee028449"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab991313d33ce270a882e4d0756c138f6" id="r_gab991313d33ce270a882e4d0756c138f6"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_re_publish.html">jsRePublish</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gab991313d33ce270a882e4d0756c138f6">jsRePublish</a></td></tr>
<tr class="separator:gab991313d33ce270a882e4d0756c138f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3148248f38749f6ba70471b7a6b96e1" id="r_gac3148248f38749f6ba70471b7a6b96e1"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_subject_transform_config.html">jsSubjectTransformConfig</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gac3148248f38749f6ba70471b7a6b96e1">jsSubjectTransformConfig</a></td></tr>
<tr class="separator:gac3148248f38749f6ba70471b7a6b96e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb76a02c18655461dbd3ee266502338c" id="r_gadb76a02c18655461dbd3ee266502338c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_consumer_limits.html">jsStreamConsumerLimits</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gadb76a02c18655461dbd3ee266502338c">jsStreamConsumerLimits</a></td></tr>
<tr class="separator:gadb76a02c18655461dbd3ee266502338c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26fd6a73df327ca3c271e46ddefc8acf" id="r_ga26fd6a73df327ca3c271e46ddefc8acf"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_config.html">jsStreamConfig</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga26fd6a73df327ca3c271e46ddefc8acf">jsStreamConfig</a></td></tr>
<tr class="separator:ga26fd6a73df327ca3c271e46ddefc8acf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf80828510450faf84bbf456e94f5b784" id="r_gaf80828510450faf84bbf456e94f5b784"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_lost_stream_data.html">jsLostStreamData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaf80828510450faf84bbf456e94f5b784">jsLostStreamData</a></td></tr>
<tr class="separator:gaf80828510450faf84bbf456e94f5b784"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55dce2fa9ecd215716cc9ceece7dfefa" id="r_ga55dce2fa9ecd215716cc9ceece7dfefa"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_state_subject.html">jsStreamStateSubject</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga55dce2fa9ecd215716cc9ceece7dfefa">jsStreamStateSubject</a></td></tr>
<tr class="separator:ga55dce2fa9ecd215716cc9ceece7dfefa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8b57d9c40364f97a705f3e61a1156b0" id="r_gae8b57d9c40364f97a705f3e61a1156b0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_state_subjects.html">jsStreamStateSubjects</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gae8b57d9c40364f97a705f3e61a1156b0">jsStreamStateSubjects</a></td></tr>
<tr class="separator:gae8b57d9c40364f97a705f3e61a1156b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2bfd6de6ffc84d767482b3dd57cb9271" id="r_ga2bfd6de6ffc84d767482b3dd57cb9271"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_state.html">jsStreamState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga2bfd6de6ffc84d767482b3dd57cb9271">jsStreamState</a></td></tr>
<tr class="separator:ga2bfd6de6ffc84d767482b3dd57cb9271"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e938dab794089f9329d7b7ece8f3e9b" id="r_ga1e938dab794089f9329d7b7ece8f3e9b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_peer_info.html">jsPeerInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga1e938dab794089f9329d7b7ece8f3e9b">jsPeerInfo</a></td></tr>
<tr class="separator:ga1e938dab794089f9329d7b7ece8f3e9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf92318ce94a1ae3547c9a7af5a3f4f6" id="r_gaaf92318ce94a1ae3547c9a7af5a3f4f6"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_cluster_info.html">jsClusterInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaaf92318ce94a1ae3547c9a7af5a3f4f6">jsClusterInfo</a></td></tr>
<tr class="separator:gaaf92318ce94a1ae3547c9a7af5a3f4f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2f33f57188a550f2f747d4f27bc24bd" id="r_gab2f33f57188a550f2f747d4f27bc24bd"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_source_info.html">jsStreamSourceInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gab2f33f57188a550f2f747d4f27bc24bd">jsStreamSourceInfo</a></td></tr>
<tr class="separator:gab2f33f57188a550f2f747d4f27bc24bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga22c26dd5dd31df7982130ef203ad3490" id="r_ga22c26dd5dd31df7982130ef203ad3490"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_alternate.html">jsStreamAlternate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga22c26dd5dd31df7982130ef203ad3490">jsStreamAlternate</a></td></tr>
<tr class="separator:ga22c26dd5dd31df7982130ef203ad3490"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2629c9454996edf7914be36a9e44921b" id="r_ga2629c9454996edf7914be36a9e44921b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_info.html">jsStreamInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga2629c9454996edf7914be36a9e44921b">jsStreamInfo</a></td></tr>
<tr class="separator:ga2629c9454996edf7914be36a9e44921b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e54c2a1bc94834d1670875fc151f565" id="r_ga1e54c2a1bc94834d1670875fc151f565"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_info_list.html">jsStreamInfoList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga1e54c2a1bc94834d1670875fc151f565">jsStreamInfoList</a></td></tr>
<tr class="separator:ga1e54c2a1bc94834d1670875fc151f565"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4d31a4dc83b2805422beafb1f8fa000" id="r_gaf4d31a4dc83b2805422beafb1f8fa000"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_stream_names_list.html">jsStreamNamesList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaf4d31a4dc83b2805422beafb1f8fa000">jsStreamNamesList</a></td></tr>
<tr class="separator:gaf4d31a4dc83b2805422beafb1f8fa000"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0483b2197c0ddd9082b48c2dd3fe7cee" id="r_ga0483b2197c0ddd9082b48c2dd3fe7cee"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_consumer_config.html">jsConsumerConfig</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga0483b2197c0ddd9082b48c2dd3fe7cee">jsConsumerConfig</a></td></tr>
<tr class="separator:ga0483b2197c0ddd9082b48c2dd3fe7cee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace471cd2cef1df797b2a1c6b485049bd" id="r_gace471cd2cef1df797b2a1c6b485049bd"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_consumer_sequence_mismatch.html">jsConsumerSequenceMismatch</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gace471cd2cef1df797b2a1c6b485049bd">jsConsumerSequenceMismatch</a></td></tr>
<tr class="separator:gace471cd2cef1df797b2a1c6b485049bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaccfaac2079656ffd40d003e4de5d2280" id="r_gaccfaac2079656ffd40d003e4de5d2280"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_sub_options.html">jsSubOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaccfaac2079656ffd40d003e4de5d2280">jsSubOptions</a></td></tr>
<tr class="separator:gaccfaac2079656ffd40d003e4de5d2280"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39011d30b295759b7f6ca0a7539dff8f" id="r_ga39011d30b295759b7f6ca0a7539dff8f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_sequence_pair.html">jsSequencePair</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga39011d30b295759b7f6ca0a7539dff8f">jsSequencePair</a></td></tr>
<tr class="separator:ga39011d30b295759b7f6ca0a7539dff8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27e1a5d5b513f9eb7d61a17db71f8003" id="r_ga27e1a5d5b513f9eb7d61a17db71f8003"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_sequence_info.html">jsSequenceInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga27e1a5d5b513f9eb7d61a17db71f8003">jsSequenceInfo</a></td></tr>
<tr class="separator:ga27e1a5d5b513f9eb7d61a17db71f8003"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f21bb79884e56a5613d7fe76b11b1e5" id="r_ga2f21bb79884e56a5613d7fe76b11b1e5"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_consumer_info.html">jsConsumerInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga2f21bb79884e56a5613d7fe76b11b1e5">jsConsumerInfo</a></td></tr>
<tr class="separator:ga2f21bb79884e56a5613d7fe76b11b1e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadad3bf72baae970662248d82d9b05d0a" id="r_gadad3bf72baae970662248d82d9b05d0a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_consumer_info_list.html">jsConsumerInfoList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gadad3bf72baae970662248d82d9b05d0a">jsConsumerInfoList</a></td></tr>
<tr class="separator:gadad3bf72baae970662248d82d9b05d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad00ab4381eec504ada3272aa9ff8adb2" id="r_gad00ab4381eec504ada3272aa9ff8adb2"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_consumer_names_list.html">jsConsumerNamesList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gad00ab4381eec504ada3272aa9ff8adb2">jsConsumerNamesList</a></td></tr>
<tr class="separator:gad00ab4381eec504ada3272aa9ff8adb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad333f1891809ea7641908e62dcc809ce" id="r_gad333f1891809ea7641908e62dcc809ce"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_consumer_pause_response.html">jsConsumerPauseResponse</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gad333f1891809ea7641908e62dcc809ce">jsConsumerPauseResponse</a></td></tr>
<tr class="separator:gad333f1891809ea7641908e62dcc809ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad057a0107367ce5727975f3daf63ff75" id="r_gad057a0107367ce5727975f3daf63ff75"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_a_p_i_stats.html">jsAPIStats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gad057a0107367ce5727975f3daf63ff75">jsAPIStats</a></td></tr>
<tr class="separator:gad057a0107367ce5727975f3daf63ff75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa889f706cce285adb9cea8aba0b76866" id="r_gaa889f706cce285adb9cea8aba0b76866"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_account_limits.html">jsAccountLimits</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaa889f706cce285adb9cea8aba0b76866">jsAccountLimits</a></td></tr>
<tr class="separator:gaa889f706cce285adb9cea8aba0b76866"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d48d3eb36b50c9ab6d8477dccf247d8" id="r_ga1d48d3eb36b50c9ab6d8477dccf247d8"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_tier.html">jsTier</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga1d48d3eb36b50c9ab6d8477dccf247d8">jsTier</a></td></tr>
<tr class="separator:ga1d48d3eb36b50c9ab6d8477dccf247d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga57cdc53b29a4fedb5a4140b6e64a4fab" id="r_ga57cdc53b29a4fedb5a4140b6e64a4fab"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_account_info.html">jsAccountInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga57cdc53b29a4fedb5a4140b6e64a4fab">jsAccountInfo</a></td></tr>
<tr class="separator:ga57cdc53b29a4fedb5a4140b6e64a4fab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace9595b1a5ce3f7a13670367fd293b4a" id="r_gace9595b1a5ce3f7a13670367fd293b4a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_msg_meta_data.html">jsMsgMetaData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gace9595b1a5ce3f7a13670367fd293b4a">jsMsgMetaData</a></td></tr>
<tr class="separator:gace9595b1a5ce3f7a13670367fd293b4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1d5e436c5d41c5b9b96d84e3d2bc86f" id="r_gaf1d5e436c5d41c5b9b96d84e3d2bc86f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_pub_ack.html">jsPubAck</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaf1d5e436c5d41c5b9b96d84e3d2bc86f">jsPubAck</a></td></tr>
<tr class="separator:gaf1d5e436c5d41c5b9b96d84e3d2bc86f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb7c287bc86b92765fbe45a066b96f40" id="r_gadb7c287bc86b92765fbe45a066b96f40"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_pub_ack_err.html">jsPubAckErr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gadb7c287bc86b92765fbe45a066b96f40">jsPubAckErr</a></td></tr>
<tr class="separator:gadb7c287bc86b92765fbe45a066b96f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85123afa00d522a249a5b2a8abd7e063" id="r_ga85123afa00d522a249a5b2a8abd7e063"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_direct_get_msg_options.html">jsDirectGetMsgOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga85123afa00d522a249a5b2a8abd7e063">jsDirectGetMsgOptions</a></td></tr>
<tr class="separator:ga85123afa00d522a249a5b2a8abd7e063"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf11e6664c1f335a5287af71c703935fa" id="r_gaf11e6664c1f335a5287af71c703935fa"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_fetch_request.html">jsFetchRequest</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaf11e6664c1f335a5287af71c703935fa">jsFetchRequest</a></td></tr>
<tr class="separator:gaf11e6664c1f335a5287af71c703935fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa17c5b961bcaa3c5907f48366b6e75c4" id="r_gaa17c5b961bcaa3c5907f48366b6e75c4"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gaa17c5b961bcaa3c5907f48366b6e75c4">jsFetchCompleteHandler</a>) (<a class="el" href="group__types_group.html#gaf88dca0a18efb5c5e994d265a9f04aec">natsConnection</a> *nc, <a class="el" href="group__types_group.html#ga87158ec63b4f90f69e20451624ea01d8">natsSubscription</a> *sub, <a class="el" href="status_8h.html#a36c934157b663b7b5fb5d6609c897c80">natsStatus</a> s, void *closure)</td></tr>
<tr class="memdesc:gaa17c5b961bcaa3c5907f48366b6e75c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback used to indicate that the work of js_PullSubscribeAsync is done.  <br /></td></tr>
<tr class="separator:gaa17c5b961bcaa3c5907f48366b6e75c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga617d3ea9036a7ef05dd3868fa56abafc" id="r_ga617d3ea9036a7ef05dd3868fa56abafc"><td class="memItemLeft" align="right" valign="top">typedef bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga617d3ea9036a7ef05dd3868fa56abafc">jsFetchNextHandler</a>) (int *messages, int64_t *maxBytes, <a class="el" href="group__types_group.html#ga87158ec63b4f90f69e20451624ea01d8">natsSubscription</a> *sub, void *closure)</td></tr>
<tr class="memdesc:ga617d3ea9036a7ef05dd3868fa56abafc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback used to customize flow control for js_PullSubscribeAsync.  <br /></td></tr>
<tr class="separator:ga617d3ea9036a7ef05dd3868fa56abafc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab95e91e52f6ac008983ac46043f6d0ce" id="r_gab95e91e52f6ac008983ac46043f6d0ce"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_options_pull_subscribe_async.html">jsOptionsPullSubscribeAsync</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gab95e91e52f6ac008983ac46043f6d0ce">jsOptionsPullSubscribeAsync</a></td></tr>
<tr class="separator:gab95e91e52f6ac008983ac46043f6d0ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadce1d31b8609e6a5846e494b4709b038" id="r_gadce1d31b8609e6a5846e494b4709b038"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_options_publish_async.html">jsOptionsPublishAsync</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gadce1d31b8609e6a5846e494b4709b038">jsOptionsPublishAsync</a></td></tr>
<tr class="separator:gadce1d31b8609e6a5846e494b4709b038"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1211ad06fbed5ae556731234a84331f4" id="r_ga1211ad06fbed5ae556731234a84331f4"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_options_stream_purge.html">jsOptionsStreamPurge</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga1211ad06fbed5ae556731234a84331f4">jsOptionsStreamPurge</a></td></tr>
<tr class="separator:ga1211ad06fbed5ae556731234a84331f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e9253d6a25dd87765cc43622058d0d8" id="r_ga7e9253d6a25dd87765cc43622058d0d8"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_options_stream_info.html">jsOptionsStreamInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga7e9253d6a25dd87765cc43622058d0d8">jsOptionsStreamInfo</a></td></tr>
<tr class="separator:ga7e9253d6a25dd87765cc43622058d0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0801f894d749d82c62db8b21437cdf0e" id="r_ga0801f894d749d82c62db8b21437cdf0e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_options_stream.html">jsOptionsStream</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga0801f894d749d82c62db8b21437cdf0e">jsOptionsStream</a></td></tr>
<tr class="separator:ga0801f894d749d82c62db8b21437cdf0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e3a3b7cf89e7dfa955f0f8f3f1eb6e5" id="r_ga0e3a3b7cf89e7dfa955f0f8f3f1eb6e5"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjs_options.html">jsOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga0e3a3b7cf89e7dfa955f0f8f3f1eb6e5">jsOptions</a></td></tr>
<tr class="separator:ga0e3a3b7cf89e7dfa955f0f8f3f1eb6e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga054c05493dd3cfc5c3e7a665a424e54a" id="r_ga054c05493dd3cfc5c3e7a665a424e54a"><td class="memItemLeft" align="right" valign="top">typedef struct __kvStore&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga054c05493dd3cfc5c3e7a665a424e54a">kvStore</a></td></tr>
<tr class="separator:ga054c05493dd3cfc5c3e7a665a424e54a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad489fb4074f27427560ca71797db6191" id="r_gad489fb4074f27427560ca71797db6191"><td class="memItemLeft" align="right" valign="top">typedef struct __kvEntry&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gad489fb4074f27427560ca71797db6191">kvEntry</a></td></tr>
<tr class="separator:gad489fb4074f27427560ca71797db6191"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3a0dd2dac950d5709ee5772b104fc80" id="r_gad3a0dd2dac950d5709ee5772b104fc80"><td class="memItemLeft" align="right" valign="top">typedef struct __kvStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gad3a0dd2dac950d5709ee5772b104fc80">kvStatus</a></td></tr>
<tr class="separator:gad3a0dd2dac950d5709ee5772b104fc80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga526fa6d37e818784b94cdc1713f3a043" id="r_ga526fa6d37e818784b94cdc1713f3a043"><td class="memItemLeft" align="right" valign="top">typedef struct __kvWatcher&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga526fa6d37e818784b94cdc1713f3a043">kvWatcher</a></td></tr>
<tr class="separator:ga526fa6d37e818784b94cdc1713f3a043"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d594b091b4bb46192336413066a8edf" id="r_ga6d594b091b4bb46192336413066a8edf"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structkv_config.html">kvConfig</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga6d594b091b4bb46192336413066a8edf">kvConfig</a></td></tr>
<tr class="separator:ga6d594b091b4bb46192336413066a8edf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac32f992fe797a1f7befc7dc3452640b6" id="r_gac32f992fe797a1f7befc7dc3452640b6"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structkv_watch_options.html">kvWatchOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gac32f992fe797a1f7befc7dc3452640b6">kvWatchOptions</a></td></tr>
<tr class="separator:gac32f992fe797a1f7befc7dc3452640b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90e8de23c4468005488bde690a2ffe9d" id="r_ga90e8de23c4468005488bde690a2ffe9d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structkv_purge_options.html">kvPurgeOptions</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga90e8de23c4468005488bde690a2ffe9d">kvPurgeOptions</a></td></tr>
<tr class="separator:ga90e8de23c4468005488bde690a2ffe9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0125d394a3cbae2a1713eed8fab7f78e" id="r_ga0125d394a3cbae2a1713eed8fab7f78e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structkv_entry_list.html">kvEntryList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga0125d394a3cbae2a1713eed8fab7f78e">kvEntryList</a></td></tr>
<tr class="memdesc:ga0125d394a3cbae2a1713eed8fab7f78e"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of KeyValue store entries.  <br /></td></tr>
<tr class="separator:ga0125d394a3cbae2a1713eed8fab7f78e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab36492d9d4370337cfed80edce4144e0" id="r_gab36492d9d4370337cfed80edce4144e0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structkv_keys_list.html">kvKeysList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gab36492d9d4370337cfed80edce4144e0">kvKeysList</a></td></tr>
<tr class="memdesc:gab36492d9d4370337cfed80edce4144e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">A list of KeyValue store keys.  <br /></td></tr>
<tr class="separator:gab36492d9d4370337cfed80edce4144e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e826493769d23086cfccefe95cdf64c" id="r_ga9e826493769d23086cfccefe95cdf64c"><td class="memItemLeft" align="right" valign="top">typedef struct __stanConnection&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga9e826493769d23086cfccefe95cdf64c">stanConnection</a></td></tr>
<tr class="memdesc:ga9e826493769d23086cfccefe95cdf64c"><td class="mdescLeft">&#160;</td><td class="mdescRight">A connection to a <code>NATS Streaming Server</code>.  <br /></td></tr>
<tr class="separator:ga9e826493769d23086cfccefe95cdf64c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae4dae869fb614536f0f027c2e2660cc5" id="r_gae4dae869fb614536f0f027c2e2660cc5"><td class="memItemLeft" align="right" valign="top">typedef struct __stanSubscription&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#gae4dae869fb614536f0f027c2e2660cc5">stanSubscription</a></td></tr>
<tr class="memdesc:gae4dae869fb614536f0f027c2e2660cc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interest on a given channel.  <br /></td></tr>
<tr class="separator:gae4dae869fb614536f0f027c2e2660cc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2cf5db7703b42d97abe56a3e83b2a87d" id="r_ga2cf5db7703b42d97abe56a3e83b2a87d"><td class="memItemLeft" align="right" valign="top">typedef struct __stanMsg&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga2cf5db7703b42d97abe56a3e83b2a87d">stanMsg</a></td></tr>
<tr class="memdesc:ga2cf5db7703b42d97abe56a3e83b2a87d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Streaming message.  <br /></td></tr>
<tr class="separator:ga2cf5db7703b42d97abe56a3e83b2a87d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13d64411878ba13a6ca39c915f2447c1" id="r_ga13d64411878ba13a6ca39c915f2447c1"><td class="memItemLeft" align="right" valign="top">typedef struct __stanConnOptions&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga13d64411878ba13a6ca39c915f2447c1">stanConnOptions</a></td></tr>
<tr class="memdesc:ga13d64411878ba13a6ca39c915f2447c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Way to configure a <a class="el" href="group__types_group.html#ga9e826493769d23086cfccefe95cdf64c" title="A connection to a NATS Streaming Server.">stanConnection</a>.  <br /></td></tr>
<tr class="separator:ga13d64411878ba13a6ca39c915f2447c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga023712711f5c289663fc2223e83686d3" id="r_ga023712711f5c289663fc2223e83686d3"><td class="memItemLeft" align="right" valign="top">typedef struct __stanSubOptions&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga023712711f5c289663fc2223e83686d3">stanSubOptions</a></td></tr>
<tr class="memdesc:ga023712711f5c289663fc2223e83686d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Way to configure a <a class="el" href="group__types_group.html#gae4dae869fb614536f0f027c2e2660cc5" title="Interest on a given channel.">stanSubscription</a>.  <br /></td></tr>
<tr class="separator:ga023712711f5c289663fc2223e83686d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga410f8fb053efa02b2ca1de0c02fa4b6d" id="r_ga410f8fb053efa02b2ca1de0c02fa4b6d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga410f8fb053efa02b2ca1de0c02fa4b6d">jsRetentionPolicy</a> { <a class="el" href="group__types_group.html#gga410f8fb053efa02b2ca1de0c02fa4b6da6a2aa02f32acec6526d81f6e974e690f">js_LimitsPolicy</a> = 0
, <a class="el" href="group__types_group.html#gga410f8fb053efa02b2ca1de0c02fa4b6dae874de4a787cfbec4c6d0eb1a3f05ebd">js_InterestPolicy</a>
, <a class="el" href="group__types_group.html#gga410f8fb053efa02b2ca1de0c02fa4b6daf7e6581e69572691b01d1294a3c3a478">js_WorkQueuePolicy</a>
 }</td></tr>
<tr class="separator:ga410f8fb053efa02b2ca1de0c02fa4b6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f88b7d482488398074f9d1419a9b8c2" id="r_ga7f88b7d482488398074f9d1419a9b8c2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga7f88b7d482488398074f9d1419a9b8c2">jsDiscardPolicy</a> { <a class="el" href="group__types_group.html#gga7f88b7d482488398074f9d1419a9b8c2abb31b828421634f1e6a1ef9359bc91f6">js_DiscardOld</a> = 0
, <a class="el" href="group__types_group.html#gga7f88b7d482488398074f9d1419a9b8c2a99d7f2d740af26c340c0a4e2b72fb6ab">js_DiscardNew</a>
 }</td></tr>
<tr class="separator:ga7f88b7d482488398074f9d1419a9b8c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1802a53c79e667f093bba033b16adc98" id="r_ga1802a53c79e667f093bba033b16adc98"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga1802a53c79e667f093bba033b16adc98">jsStorageType</a> { <a class="el" href="group__types_group.html#gga1802a53c79e667f093bba033b16adc98a1d9dad1854cf374b22e3688b98284dec">js_FileStorage</a> = 0
, <a class="el" href="group__types_group.html#gga1802a53c79e667f093bba033b16adc98a428ed10448726ad01c1db77a7f748314">js_MemoryStorage</a>
 }</td></tr>
<tr class="separator:ga1802a53c79e667f093bba033b16adc98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10d2999dc673ed95e131e6ce5181f720" id="r_ga10d2999dc673ed95e131e6ce5181f720"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga10d2999dc673ed95e131e6ce5181f720">jsStorageCompression</a> { <a class="el" href="group__types_group.html#gga10d2999dc673ed95e131e6ce5181f720a97bd071285006dc90dc4600a25f85e89">js_StorageCompressionNone</a> = 0
, <a class="el" href="group__types_group.html#gga10d2999dc673ed95e131e6ce5181f720afab4e3a974823f4438292b2405349d4a">js_StorageCompressionS2</a>
 }</td></tr>
<tr class="separator:ga10d2999dc673ed95e131e6ce5181f720"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga117ed2c35f89ef3144540ed9cbadc818" id="r_ga117ed2c35f89ef3144540ed9cbadc818"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga117ed2c35f89ef3144540ed9cbadc818">jsDeliverPolicy</a> { <br />
&#160;&#160;<a class="el" href="group__types_group.html#gga117ed2c35f89ef3144540ed9cbadc818ac692ba1363103768ac4bb58695549758">js_DeliverAll</a> = 0
, <a class="el" href="group__types_group.html#gga117ed2c35f89ef3144540ed9cbadc818abbd81d6c4e0f17f30e2186f1335e991d">js_DeliverLast</a>
, <a class="el" href="group__types_group.html#gga117ed2c35f89ef3144540ed9cbadc818a82b8d36e17391212398984f92db9c381">js_DeliverNew</a>
, <a class="el" href="group__types_group.html#gga117ed2c35f89ef3144540ed9cbadc818a06299d9c8262a16306ba6cc16d293c5e">js_DeliverByStartSequence</a>
, <br />
&#160;&#160;<a class="el" href="group__types_group.html#gga117ed2c35f89ef3144540ed9cbadc818a33317133d42f21bf5919827a691543f6">js_DeliverByStartTime</a>
, <a class="el" href="group__types_group.html#gga117ed2c35f89ef3144540ed9cbadc818abb50ebcd2fbafe27038c966121b9407b">js_DeliverLastPerSubject</a>
<br />
 }</td></tr>
<tr class="separator:ga117ed2c35f89ef3144540ed9cbadc818"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fcb50e6e7312834791f9e237d28e873" id="r_ga8fcb50e6e7312834791f9e237d28e873"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga8fcb50e6e7312834791f9e237d28e873">jsAckPolicy</a> { <a class="el" href="group__types_group.html#gga8fcb50e6e7312834791f9e237d28e873a02d46a6395933c55c95ee5194bb6b80e">js_AckExplicit</a> = 0
, <a class="el" href="group__types_group.html#gga8fcb50e6e7312834791f9e237d28e873afd91fe31cf57c68863ca3090b07c296c">js_AckNone</a>
, <a class="el" href="group__types_group.html#gga8fcb50e6e7312834791f9e237d28e873a1232af28bf4e4b82e962174f1432ed4a">js_AckAll</a>
 }</td></tr>
<tr class="separator:ga8fcb50e6e7312834791f9e237d28e873"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8650faf52b0b6b23df376eebeb9d0354" id="r_ga8650faf52b0b6b23df376eebeb9d0354"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga8650faf52b0b6b23df376eebeb9d0354">jsReplayPolicy</a> { <a class="el" href="group__types_group.html#gga8650faf52b0b6b23df376eebeb9d0354a2c4a1e2b75f31dd69a89b541d75afa44">js_ReplayInstant</a> = 0
, <a class="el" href="group__types_group.html#gga8650faf52b0b6b23df376eebeb9d0354a6ee3851dac5c90a61492193dd55931f5">js_ReplayOriginal</a>
 }</td></tr>
<tr class="separator:ga8650faf52b0b6b23df376eebeb9d0354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga89db3bd6bf11af3ac5eb3ab560d16332" id="r_ga89db3bd6bf11af3ac5eb3ab560d16332"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__types_group.html#ga89db3bd6bf11af3ac5eb3ab560d16332">kvOperation</a> { <a class="el" href="group__types_group.html#gga89db3bd6bf11af3ac5eb3ab560d16332a0b7a6bef67e4220f5f0c4075f2ed16b6">kvOp_Unknown</a> = 0
, <a class="el" href="group__types_group.html#gga89db3bd6bf11af3ac5eb3ab560d16332acc0e1da3c292cb7eb19d909c9dfd788a">kvOp_Put</a>
, <a class="el" href="group__types_group.html#gga89db3bd6bf11af3ac5eb3ab560d16332a4efb91331f3307128c75af5b23362f83">kvOp_Delete</a>
, <a class="el" href="group__types_group.html#gga89db3bd6bf11af3ac5eb3ab560d16332aee19ab8144bf518e251ea2004309b657">kvOp_Purge</a>
 }</td></tr>
<tr class="separator:ga89db3bd6bf11af3ac5eb3ab560d16332"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>NATS Types. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gaf88dca0a18efb5c5e994d265a9f04aec" name="gaf88dca0a18efb5c5e994d265a9f04aec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf88dca0a18efb5c5e994d265a9f04aec">&#9670;&#160;</a></span>natsConnection</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __natsConnection <a class="el" href="group__types_group.html#gaf88dca0a18efb5c5e994d265a9f04aec">natsConnection</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A <a class="el" href="group__types_group.html#gaf88dca0a18efb5c5e994d265a9f04aec" title="A connection to a NATS Server.">natsConnection</a> represents a bare connection to a <code>NATS Server</code>. It will send and receive byte array payloads. </p>

</div>
</div>
<a id="ga57a4b8c7109e2773878655722ce028aa" name="ga57a4b8c7109e2773878655722ce028aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga57a4b8c7109e2773878655722ce028aa">&#9670;&#160;</a></span>natsStatistics</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __natsStatistics <a class="el" href="group__types_group.html#ga57a4b8c7109e2773878655722ce028aa">natsStatistics</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Tracks various statistics received and sent on a connection, including counts for messages and bytes. </p>

</div>
</div>
<a id="ga87158ec63b4f90f69e20451624ea01d8" name="ga87158ec63b4f90f69e20451624ea01d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga87158ec63b4f90f69e20451624ea01d8">&#9670;&#160;</a></span>natsSubscription</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __natsSubscription <a class="el" href="group__types_group.html#ga87158ec63b4f90f69e20451624ea01d8">natsSubscription</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A <a class="el" href="group__types_group.html#ga87158ec63b4f90f69e20451624ea01d8" title="Interest on a given subject.">natsSubscription</a> represents interest in a given subject. </p>

</div>
</div>
<a id="gadcab54026c4ed78f344ce03ce31bb61a" name="gadcab54026c4ed78f344ce03ce31bb61a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadcab54026c4ed78f344ce03ce31bb61a">&#9670;&#160;</a></span>natsMsg</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __natsMsg <a class="el" href="group__types_group.html#gadcab54026c4ed78f344ce03ce31bb61a">natsMsg</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p><a class="el" href="group__types_group.html#gadcab54026c4ed78f344ce03ce31bb61a" title="A structure holding a subject, optional reply and payload.">natsMsg</a> is a structure used by Subscribers and <a class="el" href="group__conn_pub_group.html#ga74511acd87385931112c45c48c2a14ba" title="Publishes a message on a subject.">natsConnection_PublishMsg()</a>. </p>

</div>
</div>
<a id="gabcc48b40a81fe302188f4ee06ea9c54e" name="gabcc48b40a81fe302188f4ee06ea9c54e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabcc48b40a81fe302188f4ee06ea9c54e">&#9670;&#160;</a></span>natsOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __natsOptions <a class="el" href="group__types_group.html#gabcc48b40a81fe302188f4ee06ea9c54e">natsOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Options can be used to create a customized <a class="el" href="group__types_group.html#gaf88dca0a18efb5c5e994d265a9f04aec" title="A connection to a NATS Server.">natsConnection</a>. </p>

</div>
</div>
<a id="ga206c3d4d6f4f6f96fd2cae53a3df31c1" name="ga206c3d4d6f4f6f96fd2cae53a3df31c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga206c3d4d6f4f6f96fd2cae53a3df31c1">&#9670;&#160;</a></span>natsInbox</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef char <a class="el" href="group__types_group.html#ga206c3d4d6f4f6f96fd2cae53a3df31c1">natsInbox</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This can be used as the reply for a request. Inboxes are meant to be unique so that replies can be sent to a specific subscriber. That being said, inboxes can be shared across multiple subscribers if desired. </p>

</div>
</div>
<a id="gad29b6af20b875a1b7890ab8f0675287d" name="gad29b6af20b875a1b7890ab8f0675287d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad29b6af20b875a1b7890ab8f0675287d">&#9670;&#160;</a></span>natsClientConfig</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct____nats_client_config.html">__natsClientConfig</a> <a class="el" href="group__types_group.html#gad29b6af20b875a1b7890ab8f0675287d">natsClientConfig</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__opts_group.html#ga61d4a0cf2fbf7d13cc910e5a00c575be" title="Creates a natsOptions object.">natsOptions_Create</a> </dd></dl>

</div>
</div>
<a id="gafd5523161ec3783e79719cb9a9a66b5b" name="gafd5523161ec3783e79719cb9a9a66b5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafd5523161ec3783e79719cb9a9a66b5b">&#9670;&#160;</a></span>natsMsgList</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structnats_msg_list.html">natsMsgList</a> <a class="el" href="structnats_msg_list.html">natsMsgList</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Used by some APIs which return a list of <a class="el" href="group__types_group.html#gadcab54026c4ed78f344ce03ce31bb61a" title="A structure holding a subject, optional reply and payload.">natsMsg</a> objects.</p>
<p>Those APIs will not create the object, but instead initialize the object to which a pointer to that object will be passed to it. Typically, the user will define the object on the stack and pass a pointer to this object to APIs that require a pointer to a <a class="el" href="structnats_msg_list.html" title="A list of NATS messages.">natsMsgList</a> object.</p>
<p>Similarly, calling <a class="el" href="group__msg_group.html#ga1a091d24f939d881bf04fba78b8995c2" title="Destroys this list of messages.">natsMsgList_Destroy</a> will call <a class="el" href="group__msg_group.html#ga9e9590018284939f43f60964283f33ae" title="Destroys the message object.">natsMsg_Destroy</a> on any message still in the list, free the array containing pointers to the messages, but not free the <a class="el" href="structnats_msg_list.html" title="A list of NATS messages.">natsMsgList</a> object itself.</p>
<dl class="section note"><dt>Note</dt><dd>If the user wants to keep some of the messages from the list, the pointers of those messages in the <code>Msgs</code> array should be set to <code>NULL</code>. The value <code>Count</code> MUST not be changed. The function <a class="el" href="group__msg_group.html#ga1a091d24f939d881bf04fba78b8995c2" title="Destroys this list of messages.">natsMsgList_Destroy</a> will iterate through all pointers in the list and only destroy the ones that have not been set to <code>NULL</code>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__msg_group.html#ga1a091d24f939d881bf04fba78b8995c2" title="Destroys this list of messages.">natsMsgList_Destroy</a> </dd></dl>

</div>
</div>
<a id="ga3b454f3c6ac697a3cdc5bdd3c9ece12b" name="ga3b454f3c6ac697a3cdc5bdd3c9ece12b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b454f3c6ac697a3cdc5bdd3c9ece12b">&#9670;&#160;</a></span>natsMetadata</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structnats_metadata.html">natsMetadata</a> <a class="el" href="structnats_metadata.html">natsMetadata</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Used in JetStream, microservice configuration. </p>

</div>
</div>
<a id="gaaf12cdd24c6cc23a57c20466c92ff8c1" name="gaaf12cdd24c6cc23a57c20466c92ff8c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaf12cdd24c6cc23a57c20466c92ff8c1">&#9670;&#160;</a></span>jsCtx</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __jsCtx <a class="el" href="group__types_group.html#gaaf12cdd24c6cc23a57c20466c92ff8c1">jsCtx</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The JetStream context. Use for JetStream assets management and communication.</p>
<dl class="section warning"><dt>Warning</dt><dd>A context MUST not be destroyed concurrently with <a class="el" href="group__types_group.html#gaaf12cdd24c6cc23a57c20466c92ff8c1">jsCtx</a> API calls (for instance <a class="el" href="group__js_pub_group.html#gac6ba005531c82d9f0efa88dd6b458477" title="Publishes data on a subject to JetStream.">js_Publish</a> or <a class="el" href="group__js_pub_group.html#ga069dfd6f0f3d96f1ff8bf2372e59900c" title="Publishes data to JetStream but does not wait for a jsPubAck.">js_PublishAsync</a>, etc...). However, it is safe to destroy the context while a <a class="el" href="group__callbacks_group.html#ga954768cc1d3388bb6ab723e777647992" title="Callback used to process asynchronous publish errors from JetStream.">jsPubAckErrHandler</a> callback is running or while inside <a class="el" href="group__js_pub_group.html#ga24813ee9a58f00c0f21d10ab9c93b81d" title="Wait for all outstanding messages to be acknowledged.">js_PublishAsyncComplete</a>. </dd></dl>

</div>
</div>
<a id="ga7bbea3575d35dcdbfc9b766b04269eb7" name="ga7bbea3575d35dcdbfc9b766b04269eb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7bbea3575d35dcdbfc9b766b04269eb7">&#9670;&#160;</a></span>jsPubOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_pub_options.html">jsPubOptions</a> <a class="el" href="structjs_pub_options.html">jsPubOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>JetStream publish options.</p>
<p>These are options that you can provide to JetStream publish APIs.</p>
<p>The common usage will be to initialize a structure on the stack by calling <a class="el" href="group__js_pub_group.html#gaf09f333a8675a8060c5ede07a6bdeef9" title="Initializes a publish options structure.">jsPubOptions_Init</a>. Note that strings are owned by the application and need to be valid for the duration of the API call this object is passed to.</p>
<dl class="section note"><dt>Note</dt><dd>It is the user responsibility to free the strings if they have been allocated.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_pub_group.html#gaf09f333a8675a8060c5ede07a6bdeef9" title="Initializes a publish options structure.">jsPubOptions_Init</a> </dd></dl>

</div>
</div>
<a id="ga49d1138fac9da8b85d00a367081e91c9" name="ga49d1138fac9da8b85d00a367081e91c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49d1138fac9da8b85d00a367081e91c9">&#9670;&#160;</a></span>jsPlacement</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_placement.html">jsPlacement</a> <a class="el" href="structjs_placement.html">jsPlacement</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Used to guide placement of streams in clustered JetStream.</p>
<p>Initialize the object with <a class="el" href="group__js_assets_group.html#ga223691e6831072a0b8f8103a778293b0" title="Initializes a placement configuration structure.">jsPlacement_Init</a>.</p>
<dl class="section note"><dt>Note</dt><dd>The strings are applications owned and will not be freed by the library.</dd></dl>
<p>See <a class="el" href="structjs_stream_config.html">jsStreamConfig</a> for information on how to configure a stream.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_assets_group.html#ga223691e6831072a0b8f8103a778293b0" title="Initializes a placement configuration structure.">jsPlacement_Init</a> </dd></dl>

</div>
</div>
<a id="gaef6601477f6456bebc229f7f38982a6c" name="gaef6601477f6456bebc229f7f38982a6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaef6601477f6456bebc229f7f38982a6c">&#9670;&#160;</a></span>jsExternalStream</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_external_stream.html">jsExternalStream</a> <a class="el" href="structjs_external_stream.html">jsExternalStream</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Allows you to qualify access to a stream source in another account.</p>
<p>Initialize the object with <a class="el" href="group__js_assets_group.html#ga81aebebcd79922104720da51e95020d4" title="Initializes an external stream configuration structure.">jsExternalStream_Init</a>.</p>
<dl class="section note"><dt>Note</dt><dd>The strings are applications owned and will not be freed by the library.</dd></dl>
<p>See <a class="el" href="structjs_stream_config.html">jsStreamConfig</a> for information on how to configure a stream. </p>

</div>
</div>
<a id="gab4c43c87d81917aab748a50eee028449" name="gab4c43c87d81917aab748a50eee028449"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab4c43c87d81917aab748a50eee028449">&#9670;&#160;</a></span>jsStreamSource</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_source.html">jsStreamSource</a> <a class="el" href="structjs_stream_source.html">jsStreamSource</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Dictates how streams can source from other streams.</p>
<p>Initialize the object with <a class="el" href="group__js_assets_group.html#ga7fe8e0bf98a38eb59372e7cd78aaaf56" title="Initializes a stream source configuration structure.">jsStreamSource_Init</a>.</p>
<dl class="section note"><dt>Note</dt><dd>The strings are applications owned and will not be freed by the library.</dd>
<dd>
The <code>OptStartTime</code> needs to be expressed as the number of nanoseconds passed since 00:00:00 UTC Thursday, 1 January 1970.</dd></dl>
<p>See <a class="el" href="structjs_stream_config.html">jsStreamConfig</a> for information on how to configure a stream. </p>

</div>
</div>
<a id="gab991313d33ce270a882e4d0756c138f6" name="gab991313d33ce270a882e4d0756c138f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab991313d33ce270a882e4d0756c138f6">&#9670;&#160;</a></span>jsRePublish</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_re_publish.html">jsRePublish</a> <a class="el" href="structjs_re_publish.html">jsRePublish</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Allows a source subject to be mapped to a destination subject for republishing. </p>

</div>
</div>
<a id="gac3148248f38749f6ba70471b7a6b96e1" name="gac3148248f38749f6ba70471b7a6b96e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac3148248f38749f6ba70471b7a6b96e1">&#9670;&#160;</a></span>jsSubjectTransformConfig</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_subject_transform_config.html">jsSubjectTransformConfig</a> <a class="el" href="structjs_subject_transform_config.html">jsSubjectTransformConfig</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SubjectTransformConfig is for applying a subject transform (to matching messages) before doing anything else when a new message is received </p>

</div>
</div>
<a id="gadb76a02c18655461dbd3ee266502338c" name="gadb76a02c18655461dbd3ee266502338c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadb76a02c18655461dbd3ee266502338c">&#9670;&#160;</a></span>jsStreamConsumerLimits</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_consumer_limits.html">jsStreamConsumerLimits</a> <a class="el" href="structjs_stream_consumer_limits.html">jsStreamConsumerLimits</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SubjectTransformConfig is for applying a subject transform (to matching messages) before doing anything else when a new message is received </p>

</div>
</div>
<a id="ga26fd6a73df327ca3c271e46ddefc8acf" name="ga26fd6a73df327ca3c271e46ddefc8acf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26fd6a73df327ca3c271e46ddefc8acf">&#9670;&#160;</a></span>jsStreamConfig</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_config.html">jsStreamConfig</a> <a class="el" href="structjs_stream_config.html">jsStreamConfig</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Configuration of a JetStream stream.</p>
<p>There are sensible defaults for most. If no subjects are given the name will be used as the only subject.</p>
<p>In order to add/update a stream, a configuration needs to be set. The typical usage would be to initialize all required objects on the stack and configure them, then pass the pointer to the configuration to <a class="el" href="group__js_assets_group.html#ga5efc5136d33ba52161e6732f88f1ee75" title="Creates a stream.">js_AddStream</a> or <a class="el" href="group__js_assets_group.html#ga75a5c44304e24481c67e17fbccc15c31" title="Updates a stream.">js_UpdateStream</a>.</p>
<dl class="section note"><dt>Note</dt><dd>The strings are applications owned and will not be freed by the library.</dd>
<dd>
NATS server 2.10 added user-provided Metadata, storage Compression type, FirstSeq to specify the starting sequence number, and SubjectTransform.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_assets_group.html#gac230f71dbdc4d10bc7471d01763881d6" title="Initializes a streaming configuration structure.">jsStreamConfig_Init</a></dd></dl>
<div class="fragment"><div class="line">jsStreamConfig   sc;</div>
<div class="line">jsPlacement      p;</div>
<div class="line">jsStreamSource   m;</div>
<div class="line">jsExternalStream esm;</div>
<div class="line">jsStreamSource   s1;</div>
<div class="line">jsStreamSource   s2;</div>
<div class="line">jsExternalStream esmS2;</div>
<div class="line">const char       *subjects[]     = {&quot;foo&quot;, &quot;bar&quot;};</div>
<div class="line">const char       *tags[]         = {&quot;tag1&quot;, &quot;tag2&quot;};</div>
<div class="line">jsStreamSource   *sources[]      = {&amp;s1, &amp;s2};</div>
<div class="line">jsRePublish      rp;</div>
<div class="line"> </div>
<div class="line">jsStreamConfig_Init(&amp;sc);</div>
<div class="line"> </div>
<div class="line">jsPlacement_Init(&amp;p);</div>
<div class="line">p.Cluster = &quot;MyCluster&quot;;</div>
<div class="line">p.Tags = tags;</div>
<div class="line">p.TagsLen = 2;</div>
<div class="line"> </div>
<div class="line">jsStreamSource_Init(&amp;m);</div>
<div class="line">m.Name = &quot;AStream&quot;;</div>
<div class="line">m.OptStartSeq = 100;</div>
<div class="line">m.FilterSubject = &quot;foo&quot;;</div>
<div class="line">jsExternalStream_Init(&amp;esm);</div>
<div class="line">esm.APIPrefix = &quot;mirror.prefix.&quot;;</div>
<div class="line">esm.DeliverPrefix = &quot;deliver.prefix.&quot;;</div>
<div class="line">m.External = &amp;esm;</div>
<div class="line"> </div>
<div class="line">jsStreamSource_Init(&amp;s1);</div>
<div class="line">s1.Name = &quot;StreamOne&quot;;</div>
<div class="line">s1.OptStartSeq = 10;</div>
<div class="line">s1.FilterSubject = &quot;stream.one&quot;;</div>
<div class="line"> </div>
<div class="line">jsStreamSource_Init(&amp;s2);</div>
<div class="line">s2.Name = &quot;StreamTwo&quot;;</div>
<div class="line">s2.FilterSubject = &quot;stream.two&quot;;</div>
<div class="line">jsExternalStream_Init(&amp;esmS2);</div>
<div class="line">esmS2.APIPrefix = &quot;mirror.prefix.&quot;;</div>
<div class="line">esmS2.DeliverPrefix = &quot;deliver.prefix.&quot;;</div>
<div class="line">s2.External = &amp;esmS2;</div>
<div class="line"> </div>
<div class="line">sc.Name = &quot;MyStream&quot;;</div>
<div class="line">sc.Subjects = subjects;</div>
<div class="line">sc.SubjectsLen = 2;</div>
<div class="line">sc.Retention = js_InterestPolicy;</div>
<div class="line">sc.Replicas = 3;</div>
<div class="line">sc.Placement = &amp;p;</div>
<div class="line">sc.Mirror = &amp;m;</div>
<div class="line">sc.Sources = sources;</div>
<div class="line">sc.SourcesLen = 2;</div>
<div class="line"> </div>
<div class="line">// For RePublish subject:</div>
<div class="line">jsRePublish_Init(&amp;rp);</div>
<div class="line">rp.Source = &quot;&gt;&quot;;</div>
<div class="line">rp.Destination = &quot;RP.&gt;&quot;;</div>
<div class="line">sc.RePublish = &amp;rp;</div>
<div class="line"> </div>
<div class="line">s = js_AddStream(&amp;si, js, &amp;sc, NULL, &amp;jerr);</div>
</div><!-- fragment --> 
</div>
</div>
<a id="gaf80828510450faf84bbf456e94f5b784" name="gaf80828510450faf84bbf456e94f5b784"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf80828510450faf84bbf456e94f5b784">&#9670;&#160;</a></span>jsLostStreamData</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_lost_stream_data.html">jsLostStreamData</a> <a class="el" href="structjs_lost_stream_data.html">jsLostStreamData</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Information about messages that have been lost </p>

</div>
</div>
<a id="ga55dce2fa9ecd215716cc9ceece7dfefa" name="ga55dce2fa9ecd215716cc9ceece7dfefa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga55dce2fa9ecd215716cc9ceece7dfefa">&#9670;&#160;</a></span>jsStreamStateSubject</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_state_subject.html">jsStreamStateSubject</a> <a class="el" href="structjs_stream_state_subject.html">jsStreamStateSubject</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This indicate that the given <code>Subject</code> in a stream contains <code>Msgs</code> messages.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structjs_stream_state_subjects.html">jsStreamStateSubjects</a> </dd></dl>

</div>
</div>
<a id="gae8b57d9c40364f97a705f3e61a1156b0" name="gae8b57d9c40364f97a705f3e61a1156b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8b57d9c40364f97a705f3e61a1156b0">&#9670;&#160;</a></span>jsStreamStateSubjects</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_state_subjects.html">jsStreamStateSubjects</a> <a class="el" href="structjs_stream_state_subjects.html">jsStreamStateSubjects</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>List of subjects optionally returned in the stream information request.</p>
<p>This structure indicates the number of elements in the list, that is, the list contains <code>Count</code> <a class="el" href="structjs_stream_state_subject.html">jsStreamStateSubject</a> elements.</p>
<p>To get this list in <a class="el" href="structjs_stream_state.html">jsStreamState</a>, you have to ask for it through <a class="el" href="structjs_options.html">jsOptions</a>.</p>
<div class="fragment"><div class="line">jsStreamInfo *si = NULL;</div>
<div class="line">jsOptions    o;</div>
<div class="line"> </div>
<div class="line">jsOptions_Init(&amp;o);</div>
<div class="line">o.Stream.Info.SubjectsFilter = &quot;foo.&gt;&quot;;</div>
<div class="line">s = js_GetStreamInfo(&amp;si, js, &quot;MY_STREAM&quot;, &amp;o, &amp;jerr);</div>
<div class="line"> </div>
<div class="line">// handle errors and assume si-&gt;State.Subjects is not NULL</div>
<div class="line"> </div>
<div class="line">for (i=0; i&lt;si-&gt;State.Subjects-&gt;Count; i++)</div>
<div class="line">{</div>
<div class="line">     jsStreamStateSubject *subj = &amp;(si-&gt;State.Subjects-&gt;List[i]);</div>
<div class="line">     printf(&quot;Subject=%s Messages count=%d\n&quot;, subj-&gt;Subject, (int) subj-&gt;Msgs);</div>
<div class="line">}</div>
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="structjs_stream_state_subject.html">jsStreamStateSubject</a> </dd>
<dd>
<a class="el" href="group__js_assets_group.html#ga94cb23a35516b7779de28fcbb263180a" title="Retreives information from a stream.">js_GetStreamInfo</a> </dd>
<dd>
jsOptions.Stream.Info.SubjectsFilter </dd></dl>

</div>
</div>
<a id="ga2bfd6de6ffc84d767482b3dd57cb9271" name="ga2bfd6de6ffc84d767482b3dd57cb9271"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2bfd6de6ffc84d767482b3dd57cb9271">&#9670;&#160;</a></span>jsStreamState</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_state.html">jsStreamState</a> <a class="el" href="structjs_stream_state.html">jsStreamState</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Information about the given stream</p>
<dl class="section note"><dt>Note</dt><dd><code>FirstTime</code> and <code>LastTime</code> are message timestamps expressed as the number of nanoseconds passed since 00:00:00 UTC Thursday, 1 January 1970. </dd></dl>

</div>
</div>
<a id="ga1e938dab794089f9329d7b7ece8f3e9b" name="ga1e938dab794089f9329d7b7ece8f3e9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1e938dab794089f9329d7b7ece8f3e9b">&#9670;&#160;</a></span>jsPeerInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_peer_info.html">jsPeerInfo</a> <a class="el" href="structjs_peer_info.html">jsPeerInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Information about all the peers in the cluster that are supporting the stream or consumer. </p>

</div>
</div>
<a id="gaaf92318ce94a1ae3547c9a7af5a3f4f6" name="gaaf92318ce94a1ae3547c9a7af5a3f4f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaf92318ce94a1ae3547c9a7af5a3f4f6">&#9670;&#160;</a></span>jsClusterInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_cluster_info.html">jsClusterInfo</a> <a class="el" href="structjs_cluster_info.html">jsClusterInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Information about the underlying set of servers that make up the stream or consumer. </p>

</div>
</div>
<a id="gab2f33f57188a550f2f747d4f27bc24bd" name="gab2f33f57188a550f2f747d4f27bc24bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab2f33f57188a550f2f747d4f27bc24bd">&#9670;&#160;</a></span>jsStreamSourceInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_source_info.html">jsStreamSourceInfo</a> <a class="el" href="structjs_stream_source_info.html">jsStreamSourceInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Information about an upstream stream source. </p>

</div>
</div>
<a id="ga22c26dd5dd31df7982130ef203ad3490" name="ga22c26dd5dd31df7982130ef203ad3490"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga22c26dd5dd31df7982130ef203ad3490">&#9670;&#160;</a></span>jsStreamAlternate</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_alternate.html">jsStreamAlternate</a> <a class="el" href="structjs_stream_alternate.html">jsStreamAlternate</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Information about an alternate stream represented by a mirror. </p>

</div>
</div>
<a id="ga2629c9454996edf7914be36a9e44921b" name="ga2629c9454996edf7914be36a9e44921b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2629c9454996edf7914be36a9e44921b">&#9670;&#160;</a></span>jsStreamInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_info.html">jsStreamInfo</a> <a class="el" href="structjs_stream_info.html">jsStreamInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Configuration and current state for this stream.</p>
<dl class="section note"><dt>Note</dt><dd><code>Created</code> is the timestamp when the stream was created, expressed as the number of nanoseconds passed since 00:00:00 UTC Thursday, 1 January 1970. </dd></dl>

</div>
</div>
<a id="ga1e54c2a1bc94834d1670875fc151f565" name="ga1e54c2a1bc94834d1670875fc151f565"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1e54c2a1bc94834d1670875fc151f565">&#9670;&#160;</a></span>jsStreamInfoList</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_info_list.html">jsStreamInfoList</a> <a class="el" href="structjs_stream_info_list.html">jsStreamInfoList</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>List of stream information objects returned by <a class="el" href="group__js_assets_group.html#ga531d91de372f0dffb8d64abecf88b0c0" title="Retrieves the list of all available streams.">js_Streams</a></p>
<dl class="section note"><dt>Note</dt><dd>Once done, the list should be destroyed calling <a class="el" href="group__js_assets_group.html#ga38cdcc339eb8976d23296b99aa37d629" title="Destroys the stream information list object.">jsStreamInfoList_Destroy</a></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_assets_group.html#ga38cdcc339eb8976d23296b99aa37d629" title="Destroys the stream information list object.">jsStreamInfoList_Destroy</a> </dd></dl>

</div>
</div>
<a id="gaf4d31a4dc83b2805422beafb1f8fa000" name="gaf4d31a4dc83b2805422beafb1f8fa000"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf4d31a4dc83b2805422beafb1f8fa000">&#9670;&#160;</a></span>jsStreamNamesList</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_stream_names_list.html">jsStreamNamesList</a> <a class="el" href="structjs_stream_names_list.html">jsStreamNamesList</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>List of stream names returned by <a class="el" href="group__js_assets_group.html#gac3dfc87863dbbb3c959ecde4bce905bc" title="Retrieves the list of all available stream names.">js_StreamNames</a></p>
<dl class="section note"><dt>Note</dt><dd>Once done, the list should be destroyed calling <a class="el" href="group__js_assets_group.html#gaf8644f281d4e24893a6a170b4f7faa65" title="Destroys the stream names list object.">jsStreamNamesList_Destroy</a></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_assets_group.html#gaf8644f281d4e24893a6a170b4f7faa65" title="Destroys the stream names list object.">jsStreamNamesList_Destroy</a> </dd></dl>

</div>
</div>
<a id="ga0483b2197c0ddd9082b48c2dd3fe7cee" name="ga0483b2197c0ddd9082b48c2dd3fe7cee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0483b2197c0ddd9082b48c2dd3fe7cee">&#9670;&#160;</a></span>jsConsumerConfig</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_consumer_config.html">jsConsumerConfig</a> <a class="el" href="structjs_consumer_config.html">jsConsumerConfig</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Configuration of a JetStream consumer.</p>
<p>In order to add a consumer, a configuration needs to be set. The typical usage would be to initialize all required objects on the stack and configure them, then pass the pointer to the configuration to <a class="el" href="group__js_assets_group.html#gaf2efb63db150e782d9007090b49d4115" title="Adds a JetStream consumer.">js_AddConsumer</a>.</p>
<dl class="section note"><dt>Note</dt><dd><code>OptStartTime</code> needs to be expressed as the number of nanoseconds passed since 00:00:00 UTC Thursday, 1 January 1970.</dd>
<dd>
The strings are applications owned and will not be freed by the library.</dd>
<dd>
<code>SampleFrequency</code> is a sampling value, represented as a string such as "50" for 50%, that causes the server to produce advisories for consumer ack metrics.</dd>
<dd>
<code>Durable</code> cannot contain the character ".".</dd>
<dd>
<code>HeadersOnly</code> means that the subscription will not receive any message payload, instead, it will receive only messages headers (if present) with the addition of the header <a class="el" href="nats_8h.html#a5ce9005964bd9cf0604a9ef1afa87ea4" title="Message header for JetStream messages representing the message payload size.">JSMsgSize</a> ("Nats-Msg-Size"), whose value is the payload size.</dd>
<dd>
NATS server 2.10 added FilterSubjects, an array of multiple filter subjects. It is mutually exclusive with the previously available single FilterSubject.</dd>
<dd>
NATS server 2.10 added consumer Metadata which contains user-provided string name/value pairs.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_assets_group.html#ga3381bb05c05bf4a8979adde68d37dd66" title="Initializes a consumer configuration structure.">jsConsumerConfig_Init</a></dd></dl>
<div class="fragment"><div class="line">jsConsumerInfo   *ci = NULL;</div>
<div class="line">jsConsumerConfig cc;</div>
<div class="line"> </div>
<div class="line">jsConsumerConfig_Init(&amp;cc);</div>
<div class="line">cc.Durable = &quot;MY_DURABLE&quot;;</div>
<div class="line">cc.DeliverSubject = &quot;foo&quot;;</div>
<div class="line">cc.DeliverPolicy = js_DeliverNew;</div>
<div class="line"> </div>
<div class="line">s = js_AddConsumer(&amp;ci, js, &amp;cc, NULL, &amp;jerr);</div>
</div><!-- fragment --> 
</div>
</div>
<a id="gace471cd2cef1df797b2a1c6b485049bd" name="gace471cd2cef1df797b2a1c6b485049bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace471cd2cef1df797b2a1c6b485049bd">&#9670;&#160;</a></span>jsConsumerSequenceMismatch</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_consumer_sequence_mismatch.html">jsConsumerSequenceMismatch</a> <a class="el" href="structjs_consumer_sequence_mismatch.html">jsConsumerSequenceMismatch</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This represents a consumer sequence mismatch between the server and client views.</p>
<p>This can help applications find out if messages have been missed. Without this and during a disconnect, it would be possible that a subscription is not aware that it missed messages from the server. When acknowledgment mode is other than <a class="el" href="group__types_group.html#gga8fcb50e6e7312834791f9e237d28e873afd91fe31cf57c68863ca3090b07c296c" title="Requires no acks for delivered messages.">js_AckNone</a>, messages would ultimately be redelivered, but for <a class="el" href="group__types_group.html#gga8fcb50e6e7312834791f9e237d28e873afd91fe31cf57c68863ca3090b07c296c" title="Requires no acks for delivered messages.">js_AckNone</a>, they would not. But even with an acknowledgment mode this may help finding sooner that something went wrong and let the application decide if it wants to recreate the subscription starting at a given sequence.</p>
<p>The gap of missing messages could be calculated as <code>ConsumerServer-ConsumerClient</code>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_sub_group.html#ga0daed9f0d2d00cb14314ecc180a6fa84" title="Returns the consumer sequence mismatch information.">natsSubscription_GetSequenceMismatch</a> </dd></dl>

</div>
</div>
<a id="gaccfaac2079656ffd40d003e4de5d2280" name="gaccfaac2079656ffd40d003e4de5d2280"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaccfaac2079656ffd40d003e4de5d2280">&#9670;&#160;</a></span>jsSubOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_sub_options.html">jsSubOptions</a> <a class="el" href="structjs_sub_options.html">jsSubOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>JetStream subscribe options.</p>
<p>These are options that you can provide to JetStream subscribe APIs.</p>
<p>The common usage will be to initialize a structure on the stack by calling <a class="el" href="group__js_sub_group.html#ga472adb949d1af9d8f07bda99f5d7f3f8" title="Initializes a subscribe options structure.">jsSubOptions_Init</a>. Note that strings are owned by the application and need to be valid for the duration of the API call this object is passed to.</p>
<dl class="section note"><dt>Note</dt><dd>It is the user responsibility to free the strings if they have been allocated.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_sub_group.html#ga472adb949d1af9d8f07bda99f5d7f3f8" title="Initializes a subscribe options structure.">jsSubOptions_Init</a> </dd></dl>

</div>
</div>
<a id="ga39011d30b295759b7f6ca0a7539dff8f" name="ga39011d30b295759b7f6ca0a7539dff8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga39011d30b295759b7f6ca0a7539dff8f">&#9670;&#160;</a></span>jsSequencePair</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_sequence_pair.html">jsSequencePair</a> <a class="el" href="structjs_sequence_pair.html">jsSequencePair</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Includes the consumer and stream sequence info from a JetStream consumer. </p>

</div>
</div>
<a id="ga27e1a5d5b513f9eb7d61a17db71f8003" name="ga27e1a5d5b513f9eb7d61a17db71f8003"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga27e1a5d5b513f9eb7d61a17db71f8003">&#9670;&#160;</a></span>jsSequenceInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_sequence_info.html">jsSequenceInfo</a> <a class="el" href="structjs_sequence_info.html">jsSequenceInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Has both the consumer and the stream sequence and last activity. </p>

</div>
</div>
<a id="ga2f21bb79884e56a5613d7fe76b11b1e5" name="ga2f21bb79884e56a5613d7fe76b11b1e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2f21bb79884e56a5613d7fe76b11b1e5">&#9670;&#160;</a></span>jsConsumerInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_consumer_info.html">jsConsumerInfo</a> <a class="el" href="structjs_consumer_info.html">jsConsumerInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Configuration and current state for this consumer.</p>
<dl class="section note"><dt>Note</dt><dd><code>Created</code> is the timestamp when the consumer was created, expressed as the number of nanoseconds passed since 00:00:00 UTC Thursday, 1 January 1970. </dd></dl>

</div>
</div>
<a id="gadad3bf72baae970662248d82d9b05d0a" name="gadad3bf72baae970662248d82d9b05d0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadad3bf72baae970662248d82d9b05d0a">&#9670;&#160;</a></span>jsConsumerInfoList</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_consumer_info_list.html">jsConsumerInfoList</a> <a class="el" href="structjs_consumer_info_list.html">jsConsumerInfoList</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>List of consumers information objects returned by <a class="el" href="group__js_assets_group.html#gaf28097ede3e9ba9926fb00856e63ffd9" title="Retrieves the list of all available consumers for a stream.">js_Consumers</a></p>
<dl class="section note"><dt>Note</dt><dd>Once done, the list should be destroyed calling <a class="el" href="group__js_assets_group.html#ga421de40d8e91658353111c3f2ea90ec8" title="Destroys the consumer information list object.">jsConsumerInfoList_Destroy</a></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_assets_group.html#ga38cdcc339eb8976d23296b99aa37d629" title="Destroys the stream information list object.">jsStreamInfoList_Destroy</a> </dd></dl>

</div>
</div>
<a id="gad00ab4381eec504ada3272aa9ff8adb2" name="gad00ab4381eec504ada3272aa9ff8adb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad00ab4381eec504ada3272aa9ff8adb2">&#9670;&#160;</a></span>jsConsumerNamesList</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_consumer_names_list.html">jsConsumerNamesList</a> <a class="el" href="structjs_consumer_names_list.html">jsConsumerNamesList</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>List of consumer names returned by <a class="el" href="group__js_assets_group.html#ga690d19af55d12b82c8523d1861cef8d0" title="Retrieves the list of all available consumer names for a stream.">js_ConsumerNames</a></p>
<dl class="section note"><dt>Note</dt><dd>Once done, the list should be destroyed calling <a class="el" href="group__js_assets_group.html#ga2ced0d190131460bf4608ab893dffc50" title="Destroys the consumer names list object.">jsConsumerNamesList_Destroy</a></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_assets_group.html#ga2ced0d190131460bf4608ab893dffc50" title="Destroys the consumer names list object.">jsConsumerNamesList_Destroy</a> </dd></dl>

</div>
</div>
<a id="gad333f1891809ea7641908e62dcc809ce" name="gad333f1891809ea7641908e62dcc809ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad333f1891809ea7641908e62dcc809ce">&#9670;&#160;</a></span>jsConsumerPauseResponse</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_consumer_pause_response.html">jsConsumerPauseResponse</a> <a class="el" href="structjs_consumer_pause_response.html">jsConsumerPauseResponse</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Request to pause the consumer, used to call js_PauseConsumer.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_assets_group.html#gabb1579300f501ba4611efce29d952b82" title="Pauses a consumer.">js_PauseConsumer</a> </dd></dl>

</div>
</div>
<a id="gad057a0107367ce5727975f3daf63ff75" name="gad057a0107367ce5727975f3daf63ff75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad057a0107367ce5727975f3daf63ff75">&#9670;&#160;</a></span>jsAPIStats</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_a_p_i_stats.html">jsAPIStats</a> <a class="el" href="structjs_a_p_i_stats.html">jsAPIStats</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Reports on API calls to JetStream for this account. </p>

</div>
</div>
<a id="gaa889f706cce285adb9cea8aba0b76866" name="gaa889f706cce285adb9cea8aba0b76866"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa889f706cce285adb9cea8aba0b76866">&#9670;&#160;</a></span>jsAccountLimits</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_account_limits.html">jsAccountLimits</a> <a class="el" href="structjs_account_limits.html">jsAccountLimits</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Includes the JetStream limits of the current account. </p>

</div>
</div>
<a id="ga1d48d3eb36b50c9ab6d8477dccf247d8" name="ga1d48d3eb36b50c9ab6d8477dccf247d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1d48d3eb36b50c9ab6d8477dccf247d8">&#9670;&#160;</a></span>jsTier</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_tier.html">jsTier</a> <a class="el" href="structjs_tier.html">jsTier</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga57cdc53b29a4fedb5a4140b6e64a4fab" name="ga57cdc53b29a4fedb5a4140b6e64a4fab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga57cdc53b29a4fedb5a4140b6e64a4fab">&#9670;&#160;</a></span>jsAccountInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_account_info.html">jsAccountInfo</a> <a class="el" href="structjs_account_info.html">jsAccountInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Information about the JetStream usage from the current account. </p>

</div>
</div>
<a id="gace9595b1a5ce3f7a13670367fd293b4a" name="gace9595b1a5ce3f7a13670367fd293b4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace9595b1a5ce3f7a13670367fd293b4a">&#9670;&#160;</a></span>jsMsgMetaData</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_msg_meta_data.html">jsMsgMetaData</a> <a class="el" href="structjs_msg_meta_data.html">jsMsgMetaData</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This represents the JetStream metadata associated with received messages.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_msg.html#gacf48e59038fab35849e9dc6f8fcf6328" title="Returns metadata from this JetStream message.">natsMsg_GetMetaData</a> </dd>
<dd>
<a class="el" href="group__js_msg.html#gaf9bf92294342bcb27053de7038606d12" title="Destroys the message metadata object.">jsMsgMetaData_Destroy</a> </dd></dl>

</div>
</div>
<a id="gaf1d5e436c5d41c5b9b96d84e3d2bc86f" name="gaf1d5e436c5d41c5b9b96d84e3d2bc86f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf1d5e436c5d41c5b9b96d84e3d2bc86f">&#9670;&#160;</a></span>jsPubAck</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_pub_ack.html">jsPubAck</a> <a class="el" href="structjs_pub_ack.html">jsPubAck</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Ack received after successfully publishing a message. </p>

</div>
</div>
<a id="gadb7c287bc86b92765fbe45a066b96f40" name="gadb7c287bc86b92765fbe45a066b96f40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadb7c287bc86b92765fbe45a066b96f40">&#9670;&#160;</a></span>jsPubAckErr</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_pub_ack_err.html">jsPubAckErr</a> <a class="el" href="structjs_pub_ack_err.html">jsPubAckErr</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Publish acknowledgment failure that will be passed to the optional <a class="el" href="group__callbacks_group.html#ga954768cc1d3388bb6ab723e777647992" title="Callback used to process asynchronous publish errors from JetStream.">jsPubAckErrHandler</a> callback. </p>

</div>
</div>
<a id="ga85123afa00d522a249a5b2a8abd7e063" name="ga85123afa00d522a249a5b2a8abd7e063"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga85123afa00d522a249a5b2a8abd7e063">&#9670;&#160;</a></span>jsDirectGetMsgOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_direct_get_msg_options.html">jsDirectGetMsgOptions</a> <a class="el" href="structjs_direct_get_msg_options.html">jsDirectGetMsgOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Options for the <a class="el" href="group__js_assets_group.html#ga62c250cecc650b1eed0fa1691893e2ae" title="Retrieves directly a JetStream message based on provided options.">js_DirectGetMsg()</a> call, which retrieves a message from any server (not only the leader) as long as the stream has been created with a AllowDirect option.</p>
<p>Note that some options are mutually exclusive but are not checked byt the library. The server will reject invalid requests and the library will return the error returned from the server. </p>

</div>
</div>
<a id="gaf11e6664c1f335a5287af71c703935fa" name="gaf11e6664c1f335a5287af71c703935fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf11e6664c1f335a5287af71c703935fa">&#9670;&#160;</a></span>jsFetchRequest</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_fetch_request.html">jsFetchRequest</a> <a class="el" href="structjs_fetch_request.html">jsFetchRequest</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Options for the <a class="el" href="group__js_sub_group.html#ga676292505e7fde8688cfd886b79a10ed" title="Fetches messages for a pull subscription with a complete request configuration.">natsSubscription_FetchRequest()</a> call, which is similar to <a class="el" href="group__js_sub_group.html#gafc5e0d2269bd23b4d5fb7f3b05278e50" title="Fetches messages for a pull subscription.">natsSubscription_Fetch()</a> but gives more control in the configuration of the fetch. </p>

</div>
</div>
<a id="gaa17c5b961bcaa3c5907f48366b6e75c4" name="gaa17c5b961bcaa3c5907f48366b6e75c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa17c5b961bcaa3c5907f48366b6e75c4">&#9670;&#160;</a></span>jsFetchCompleteHandler</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* jsFetchCompleteHandler) (<a class="el" href="group__types_group.html#gaf88dca0a18efb5c5e994d265a9f04aec">natsConnection</a> *nc, <a class="el" href="group__types_group.html#ga87158ec63b4f90f69e20451624ea01d8">natsSubscription</a> *sub, <a class="el" href="status_8h.html#a36c934157b663b7b5fb5d6609c897c80">natsStatus</a> s, void *closure)</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">nc</td><td>- Connection to the NATS server </td></tr>
    <tr><td class="paramname">sub</td><td>- Subscription being used </td></tr>
    <tr><td class="paramname">s</td><td>- Completion status code<ul>
<li><code>NATS_OK</code> - should never happen here!</li>
<li><code>NATS_TIMEOUT</code> indicates that the fetch has reached its lifetime expiration time, or had NoWait set and there are no more messages.</li>
<li><code>NATS_NOT_FOUND</code> is returned when the server has no messages to deliver at the beginning of a specific request. It may be returned for NoWait subscriptions, effectively the same meaning as NATS_TIMEOUT - early termination for NoWait.</li>
<li><code>NATS_MAX_DELIVERED_MSGS</code> indicates that lifetime <code>Batch</code> message limit has been reached.</li>
<li><code>NATS_LIMIT_REACHED</code> is returned when the lifetime byte limit is reached.</li>
<li>Other status values represent error conditions. </li>
</ul>
</td></tr>
    <tr><td class="paramname">closure</td><td>completeClosure that was passed to js_PullSubscribeAsync</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_sub_group.html#ga938d410675ab09fa8c21896ab61bed0a" title="Starts a Pull based JetStream subscription, and delivers messages to a user callback asynchronously.">js_PullSubscribeAsync</a> </dd></dl>

</div>
</div>
<a id="ga617d3ea9036a7ef05dd3868fa56abafc" name="ga617d3ea9036a7ef05dd3868fa56abafc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga617d3ea9036a7ef05dd3868fa56abafc">&#9670;&#160;</a></span>jsFetchNextHandler</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef bool(* jsFetchNextHandler) (int *messages, int64_t *maxBytes, <a class="el" href="group__types_group.html#ga87158ec63b4f90f69e20451624ea01d8">natsSubscription</a> *sub, void *closure)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The library will invoke this callback when it may be time to request more messages from the server.</p>
<dl class="section return"><dt>Returns</dt><dd>true to fetch more, false to skip. If true, <code>messages</code> and <code>maxBytes</code> should be set to the number of messages and max bytes to fetch.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_sub_group.html#ga938d410675ab09fa8c21896ab61bed0a" title="Starts a Pull based JetStream subscription, and delivers messages to a user callback asynchronously.">js_PullSubscribeAsync</a> </dd></dl>

</div>
</div>
<a id="gab95e91e52f6ac008983ac46043f6d0ce" name="gab95e91e52f6ac008983ac46043f6d0ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab95e91e52f6ac008983ac46043f6d0ce">&#9670;&#160;</a></span>jsOptionsPullSubscribeAsync</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_options_pull_subscribe_async.html">jsOptionsPullSubscribeAsync</a> <a class="el" href="structjs_options_pull_subscribe_async.html">jsOptionsPullSubscribeAsync</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Async pull subscriber options.</p>
<p>Part of <a class="el" href="structjs_options.html">jsOptions</a>. </p>

</div>
</div>
<a id="gadce1d31b8609e6a5846e494b4709b038" name="gadce1d31b8609e6a5846e494b4709b038"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadce1d31b8609e6a5846e494b4709b038">&#9670;&#160;</a></span>jsOptionsPublishAsync</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_options_publish_async.html">jsOptionsPublishAsync</a> <a class="el" href="structjs_options_publish_async.html">jsOptionsPublishAsync</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Async pull options.</p>
<p>Part of <a class="el" href="structjs_options.html">jsOptions</a>. </p>

</div>
</div>
<a id="ga1211ad06fbed5ae556731234a84331f4" name="ga1211ad06fbed5ae556731234a84331f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1211ad06fbed5ae556731234a84331f4">&#9670;&#160;</a></span>jsOptionsStreamPurge</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_options_stream_purge.html">jsOptionsStreamPurge</a> <a class="el" href="structjs_options_stream_purge.html">jsOptionsStreamPurge</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Advanced stream purge options</p>
<ul>
<li><code>Subject</code> will filter the purge request to only messages that match the subject, which can have wildcards.<br  />
</li>
<li><code>Sequence</code> will purge up to but not including this sequence and can be combined with subject filtering.<br  />
</li>
<li><code>Keep</code> will specify how many messages to keep and can be combined with subject filtering.<br  />
</li>
</ul>
<dl class="section note"><dt>Note</dt><dd><code>Sequence</code> and <code>Keep</code> are mutually exclusive, so both can not be set at the same time. </dd></dl>

</div>
</div>
<a id="ga7e9253d6a25dd87765cc43622058d0d8" name="ga7e9253d6a25dd87765cc43622058d0d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7e9253d6a25dd87765cc43622058d0d8">&#9670;&#160;</a></span>jsOptionsStreamInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_options_stream_info.html">jsOptionsStreamInfo</a> <a class="el" href="structjs_options_stream_info.html">jsOptionsStreamInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Advance stream information retrieval options </p>

</div>
</div>
<a id="ga0801f894d749d82c62db8b21437cdf0e" name="ga0801f894d749d82c62db8b21437cdf0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0801f894d749d82c62db8b21437cdf0e">&#9670;&#160;</a></span>jsOptionsStream</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_options_stream.html">jsOptionsStream</a> <a class="el" href="structjs_options_stream.html">jsOptionsStream</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Advanced stream options</p>
<ul>
<li><code>Purge</code> for advanced purge options.</li>
<li><code>Info</code> for advanced information retrieval options. </li>
</ul>

</div>
</div>
<a id="ga0e3a3b7cf89e7dfa955f0f8f3f1eb6e5" name="ga0e3a3b7cf89e7dfa955f0f8f3f1eb6e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e3a3b7cf89e7dfa955f0f8f3f1eb6e5">&#9670;&#160;</a></span>jsOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structjs_options.html">jsOptions</a> <a class="el" href="structjs_options.html">jsOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>JetStream context options.</p>
<p>Initialize the object with <a class="el" href="group__js_group.html#ga855ff9a04888d696785cc5ede96112e4" title="Initializes a streaming context options structure.">jsOptions_Init</a>. </p>

</div>
</div>
<a id="ga054c05493dd3cfc5c3e7a665a424e54a" name="ga054c05493dd3cfc5c3e7a665a424e54a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga054c05493dd3cfc5c3e7a665a424e54a">&#9670;&#160;</a></span>kvStore</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __kvStore <a class="el" href="group__types_group.html#ga054c05493dd3cfc5c3e7a665a424e54a">kvStore</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The KeyValue store object. </p>

</div>
</div>
<a id="gad489fb4074f27427560ca71797db6191" name="gad489fb4074f27427560ca71797db6191"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad489fb4074f27427560ca71797db6191">&#9670;&#160;</a></span>kvEntry</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __kvEntry <a class="el" href="group__types_group.html#gad489fb4074f27427560ca71797db6191">kvEntry</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The KeyValue entry object. </p>

</div>
</div>
<a id="gad3a0dd2dac950d5709ee5772b104fc80" name="gad3a0dd2dac950d5709ee5772b104fc80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad3a0dd2dac950d5709ee5772b104fc80">&#9670;&#160;</a></span>kvStatus</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __kvStatus <a class="el" href="group__types_group.html#gad3a0dd2dac950d5709ee5772b104fc80">kvStatus</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The KeyValue status object. </p>

</div>
</div>
<a id="ga526fa6d37e818784b94cdc1713f3a043" name="ga526fa6d37e818784b94cdc1713f3a043"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga526fa6d37e818784b94cdc1713f3a043">&#9670;&#160;</a></span>kvWatcher</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __kvWatcher <a class="el" href="group__types_group.html#ga526fa6d37e818784b94cdc1713f3a043">kvWatcher</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The KeyValue watcher object. </p>

</div>
</div>
<a id="ga6d594b091b4bb46192336413066a8edf" name="ga6d594b091b4bb46192336413066a8edf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6d594b091b4bb46192336413066a8edf">&#9670;&#160;</a></span>kvConfig</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structkv_config.html">kvConfig</a> <a class="el" href="structkv_config.html">kvConfig</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>KeyValue configuration object.</p>
<p>Initialize the object with <a class="el" href="group__kv_group_mgt.html#ga16d4c27d8ac62bb86ba601bc40f53172" title="Initializes a KeyValue configuration structure.">kvConfig_Init</a>. </p>

</div>
</div>
<a id="gac32f992fe797a1f7befc7dc3452640b6" name="gac32f992fe797a1f7befc7dc3452640b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac32f992fe797a1f7befc7dc3452640b6">&#9670;&#160;</a></span>kvWatchOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structkv_watch_options.html">kvWatchOptions</a> <a class="el" href="structkv_watch_options.html">kvWatchOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>KeyValue watcher options object.</p>
<p>Initialize the object with <a class="el" href="group__kv_group.html#ga762fd5de8cde683e46a6736a51e575f5" title="Initializes a KeyValue watcher options structure.">kvWatchOptions_Init</a> </p>

</div>
</div>
<a id="ga90e8de23c4468005488bde690a2ffe9d" name="ga90e8de23c4468005488bde690a2ffe9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga90e8de23c4468005488bde690a2ffe9d">&#9670;&#160;</a></span>kvPurgeOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structkv_purge_options.html">kvPurgeOptions</a> <a class="el" href="structkv_purge_options.html">kvPurgeOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>KeyValue purge options object.</p>
<p>Initialize the object with <a class="el" href="group__kv_group.html#ga243113fd7df34ce104850ab888f04021" title="Initializes a KeyValue purge options structure.">kvPurgeOptions_Init</a> </p>

</div>
</div>
<a id="ga0125d394a3cbae2a1713eed8fab7f78e" name="ga0125d394a3cbae2a1713eed8fab7f78e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0125d394a3cbae2a1713eed8fab7f78e">&#9670;&#160;</a></span>kvEntryList</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structkv_entry_list.html">kvEntryList</a> <a class="el" href="structkv_entry_list.html">kvEntryList</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Used by some APIs which return a list of <a class="el" href="group__types_group.html#gad489fb4074f27427560ca71797db6191">kvEntry</a> objects.</p>
<p>Those APIs will not create the object, but instead initialize the object.</p>
<p>Typically, the user will define the object on the stack and pass a pointer to this object to APIs that require a pointer to a <a class="el" href="structkv_entry_list.html" title="A list of KeyValue store entries.">kvEntryList</a> object.</p>
<p>Similarly, calling <a class="el" href="group__kv_group.html#gae783352ab81e22aa3173057d117518e6" title="Destroys this list of KeyValue store entries.">kvEntryList_Destroy</a> will call <a class="el" href="group__kv_entry.html#ga8359ffcdeefb9c5821e6442d0d5ee388" title="Destroys the KeyValue entry object.">kvEntry_Destroy</a> on entries in the list, free the array containing pointers to the entries, but not free the <a class="el" href="structkv_entry_list.html" title="A list of KeyValue store entries.">kvEntryList</a> object itself.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__kv_group.html#gae783352ab81e22aa3173057d117518e6" title="Destroys this list of KeyValue store entries.">kvEntryList_Destroy</a> </dd></dl>

</div>
</div>
<a id="gab36492d9d4370337cfed80edce4144e0" name="gab36492d9d4370337cfed80edce4144e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab36492d9d4370337cfed80edce4144e0">&#9670;&#160;</a></span>kvKeysList</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structkv_keys_list.html">kvKeysList</a> <a class="el" href="structkv_keys_list.html">kvKeysList</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Used by some APIs which return a list of key names.</p>
<p>Those APIs will not create the object, but instead initialize the object.</p>
<p>Typically, the user will define the object on the stack and pass a pointer to this object to APIs that require a pointer to a <a class="el" href="structkv_keys_list.html" title="A list of KeyValue store keys.">kvKeysList</a> object.</p>
<p>Similarly, calling <a class="el" href="group__kv_group.html#ga02ccd58bc5062f6ce6f94bf05e3dfe45" title="Destroys this list of KeyValue store key strings.">kvKeysList_Destroy</a> will free key strings in the list, free the array containing pointers to the keys, but not free the <a class="el" href="structkv_keys_list.html" title="A list of KeyValue store keys.">kvKeysList</a> object itself.</p>
<dl class="section see"><dt>See also</dt><dd>kvKeysList_Cleanup </dd></dl>

</div>
</div>
<a id="ga9e826493769d23086cfccefe95cdf64c" name="ga9e826493769d23086cfccefe95cdf64c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9e826493769d23086cfccefe95cdf64c">&#9670;&#160;</a></span>stanConnection</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __stanConnection <a class="el" href="group__types_group.html#ga9e826493769d23086cfccefe95cdf64c">stanConnection</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A <a class="el" href="group__types_group.html#ga9e826493769d23086cfccefe95cdf64c" title="A connection to a NATS Streaming Server.">stanConnection</a> represents a connection to a <code>NATS Streaming Server</code>. </p>

</div>
</div>
<a id="gae4dae869fb614536f0f027c2e2660cc5" name="gae4dae869fb614536f0f027c2e2660cc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae4dae869fb614536f0f027c2e2660cc5">&#9670;&#160;</a></span>stanSubscription</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __stanSubscription <a class="el" href="group__types_group.html#gae4dae869fb614536f0f027c2e2660cc5">stanSubscription</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>A <a class="el" href="group__types_group.html#gae4dae869fb614536f0f027c2e2660cc5" title="Interest on a given channel.">stanSubscription</a> represents interest in a given channel. </p>

</div>
</div>
<a id="ga2cf5db7703b42d97abe56a3e83b2a87d" name="ga2cf5db7703b42d97abe56a3e83b2a87d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2cf5db7703b42d97abe56a3e83b2a87d">&#9670;&#160;</a></span>stanMsg</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __stanMsg <a class="el" href="group__types_group.html#ga2cf5db7703b42d97abe56a3e83b2a87d">stanMsg</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p><a class="el" href="group__types_group.html#ga2cf5db7703b42d97abe56a3e83b2a87d" title="The Streaming message.">stanMsg</a> is the object passed to the subscriptions' message callbacks. </p>

</div>
</div>
<a id="ga13d64411878ba13a6ca39c915f2447c1" name="ga13d64411878ba13a6ca39c915f2447c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga13d64411878ba13a6ca39c915f2447c1">&#9670;&#160;</a></span>stanConnOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __stanConnOptions <a class="el" href="group__types_group.html#ga13d64411878ba13a6ca39c915f2447c1">stanConnOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Options can be used to create a customized <a class="el" href="group__types_group.html#ga9e826493769d23086cfccefe95cdf64c" title="A connection to a NATS Streaming Server.">stanConnection</a>. </p>

</div>
</div>
<a id="ga023712711f5c289663fc2223e83686d3" name="ga023712711f5c289663fc2223e83686d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga023712711f5c289663fc2223e83686d3">&#9670;&#160;</a></span>stanSubOptions</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct __stanSubOptions <a class="el" href="group__types_group.html#ga023712711f5c289663fc2223e83686d3">stanSubOptions</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Options can be used to create a customized <a class="el" href="group__types_group.html#gae4dae869fb614536f0f027c2e2660cc5" title="Interest on a given channel.">stanSubscription</a>. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga410f8fb053efa02b2ca1de0c02fa4b6d" name="ga410f8fb053efa02b2ca1de0c02fa4b6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga410f8fb053efa02b2ca1de0c02fa4b6d">&#9670;&#160;</a></span>jsRetentionPolicy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__types_group.html#ga410f8fb053efa02b2ca1de0c02fa4b6d">jsRetentionPolicy</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines how messages in a set are retained. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga410f8fb053efa02b2ca1de0c02fa4b6da6a2aa02f32acec6526d81f6e974e690f" name="gga410f8fb053efa02b2ca1de0c02fa4b6da6a2aa02f32acec6526d81f6e974e690f"></a>js_LimitsPolicy&#160;</td><td class="fielddoc"><p>Specifies that messages are retained until any given limit is reached, which could be one of MaxMsgs, MaxBytes, or MaxAge. This is the default. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga410f8fb053efa02b2ca1de0c02fa4b6dae874de4a787cfbec4c6d0eb1a3f05ebd" name="gga410f8fb053efa02b2ca1de0c02fa4b6dae874de4a787cfbec4c6d0eb1a3f05ebd"></a>js_InterestPolicy&#160;</td><td class="fielddoc"><p>Specifies that when all known observables have acknowledged a message it can be removed. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga410f8fb053efa02b2ca1de0c02fa4b6daf7e6581e69572691b01d1294a3c3a478" name="gga410f8fb053efa02b2ca1de0c02fa4b6daf7e6581e69572691b01d1294a3c3a478"></a>js_WorkQueuePolicy&#160;</td><td class="fielddoc"><p>Specifies that when the first worker or subscriber acknowledges the message it can be removed. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga7f88b7d482488398074f9d1419a9b8c2" name="ga7f88b7d482488398074f9d1419a9b8c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7f88b7d482488398074f9d1419a9b8c2">&#9670;&#160;</a></span>jsDiscardPolicy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__types_group.html#ga7f88b7d482488398074f9d1419a9b8c2">jsDiscardPolicy</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines how to proceed when limits of messages or bytes are reached. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga7f88b7d482488398074f9d1419a9b8c2abb31b828421634f1e6a1ef9359bc91f6" name="gga7f88b7d482488398074f9d1419a9b8c2abb31b828421634f1e6a1ef9359bc91f6"></a>js_DiscardOld&#160;</td><td class="fielddoc"><p>Will remove older messages to return to the limits. This is the default. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga7f88b7d482488398074f9d1419a9b8c2a99d7f2d740af26c340c0a4e2b72fb6ab" name="gga7f88b7d482488398074f9d1419a9b8c2a99d7f2d740af26c340c0a4e2b72fb6ab"></a>js_DiscardNew&#160;</td><td class="fielddoc"><p>Will fail to store new messages. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga1802a53c79e667f093bba033b16adc98" name="ga1802a53c79e667f093bba033b16adc98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1802a53c79e667f093bba033b16adc98">&#9670;&#160;</a></span>jsStorageType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__types_group.html#ga1802a53c79e667f093bba033b16adc98">jsStorageType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines how messages are stored for retention. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga1802a53c79e667f093bba033b16adc98a1d9dad1854cf374b22e3688b98284dec" name="gga1802a53c79e667f093bba033b16adc98a1d9dad1854cf374b22e3688b98284dec"></a>js_FileStorage&#160;</td><td class="fielddoc"><p>Specifies on disk storage. It's the default. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga1802a53c79e667f093bba033b16adc98a428ed10448726ad01c1db77a7f748314" name="gga1802a53c79e667f093bba033b16adc98a428ed10448726ad01c1db77a7f748314"></a>js_MemoryStorage&#160;</td><td class="fielddoc"><p>Specifies in memory only. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga10d2999dc673ed95e131e6ce5181f720" name="ga10d2999dc673ed95e131e6ce5181f720"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga10d2999dc673ed95e131e6ce5181f720">&#9670;&#160;</a></span>jsStorageCompression</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__types_group.html#ga10d2999dc673ed95e131e6ce5181f720">jsStorageCompression</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines how messages are compressed when stored for retention. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga10d2999dc673ed95e131e6ce5181f720a97bd071285006dc90dc4600a25f85e89" name="gga10d2999dc673ed95e131e6ce5181f720a97bd071285006dc90dc4600a25f85e89"></a>js_StorageCompressionNone&#160;</td><td class="fielddoc"><p>Specifies no compression. It's the default. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga10d2999dc673ed95e131e6ce5181f720afab4e3a974823f4438292b2405349d4a" name="gga10d2999dc673ed95e131e6ce5181f720afab4e3a974823f4438292b2405349d4a"></a>js_StorageCompressionS2&#160;</td><td class="fielddoc"><p>Specifies S2. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga117ed2c35f89ef3144540ed9cbadc818" name="ga117ed2c35f89ef3144540ed9cbadc818"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga117ed2c35f89ef3144540ed9cbadc818">&#9670;&#160;</a></span>jsDeliverPolicy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__types_group.html#ga117ed2c35f89ef3144540ed9cbadc818">jsDeliverPolicy</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines how the consumer should select the first message to deliver. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga117ed2c35f89ef3144540ed9cbadc818ac692ba1363103768ac4bb58695549758" name="gga117ed2c35f89ef3144540ed9cbadc818ac692ba1363103768ac4bb58695549758"></a>js_DeliverAll&#160;</td><td class="fielddoc"><p>Starts from the very beginning of a stream. This is the default. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga117ed2c35f89ef3144540ed9cbadc818abbd81d6c4e0f17f30e2186f1335e991d" name="gga117ed2c35f89ef3144540ed9cbadc818abbd81d6c4e0f17f30e2186f1335e991d"></a>js_DeliverLast&#160;</td><td class="fielddoc"><p>Starts with the last sequence received. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga117ed2c35f89ef3144540ed9cbadc818a82b8d36e17391212398984f92db9c381" name="gga117ed2c35f89ef3144540ed9cbadc818a82b8d36e17391212398984f92db9c381"></a>js_DeliverNew&#160;</td><td class="fielddoc"><p>Starts with messages sent after the consumer is created. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga117ed2c35f89ef3144540ed9cbadc818a06299d9c8262a16306ba6cc16d293c5e" name="gga117ed2c35f89ef3144540ed9cbadc818a06299d9c8262a16306ba6cc16d293c5e"></a>js_DeliverByStartSequence&#160;</td><td class="fielddoc"><p>Starts from a given sequence. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga117ed2c35f89ef3144540ed9cbadc818a33317133d42f21bf5919827a691543f6" name="gga117ed2c35f89ef3144540ed9cbadc818a33317133d42f21bf5919827a691543f6"></a>js_DeliverByStartTime&#160;</td><td class="fielddoc"><p>Starts from a given UTC time (number of nanoseconds since epoch) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga117ed2c35f89ef3144540ed9cbadc818abb50ebcd2fbafe27038c966121b9407b" name="gga117ed2c35f89ef3144540ed9cbadc818abb50ebcd2fbafe27038c966121b9407b"></a>js_DeliverLastPerSubject&#160;</td><td class="fielddoc"><p>Starts with the last message for all subjects received. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga8fcb50e6e7312834791f9e237d28e873" name="ga8fcb50e6e7312834791f9e237d28e873"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8fcb50e6e7312834791f9e237d28e873">&#9670;&#160;</a></span>jsAckPolicy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__types_group.html#ga8fcb50e6e7312834791f9e237d28e873">jsAckPolicy</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines how the consumer should acknowledge delivered messages. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga8fcb50e6e7312834791f9e237d28e873a02d46a6395933c55c95ee5194bb6b80e" name="gga8fcb50e6e7312834791f9e237d28e873a02d46a6395933c55c95ee5194bb6b80e"></a>js_AckExplicit&#160;</td><td class="fielddoc"><p>Requires ack or nack for all messages. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga8fcb50e6e7312834791f9e237d28e873afd91fe31cf57c68863ca3090b07c296c" name="gga8fcb50e6e7312834791f9e237d28e873afd91fe31cf57c68863ca3090b07c296c"></a>js_AckNone&#160;</td><td class="fielddoc"><p>Requires no acks for delivered messages. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga8fcb50e6e7312834791f9e237d28e873a1232af28bf4e4b82e962174f1432ed4a" name="gga8fcb50e6e7312834791f9e237d28e873a1232af28bf4e4b82e962174f1432ed4a"></a>js_AckAll&#160;</td><td class="fielddoc"><p>When acking a sequence number, this implicitly acks all sequences below this one as well. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga8650faf52b0b6b23df376eebeb9d0354" name="ga8650faf52b0b6b23df376eebeb9d0354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8650faf52b0b6b23df376eebeb9d0354">&#9670;&#160;</a></span>jsReplayPolicy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__types_group.html#ga8650faf52b0b6b23df376eebeb9d0354">jsReplayPolicy</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines how the consumer should replay messages it already has queued in the stream. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga8650faf52b0b6b23df376eebeb9d0354a2c4a1e2b75f31dd69a89b541d75afa44" name="gga8650faf52b0b6b23df376eebeb9d0354a2c4a1e2b75f31dd69a89b541d75afa44"></a>js_ReplayInstant&#160;</td><td class="fielddoc"><p>Replays messages as fast as possible. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga8650faf52b0b6b23df376eebeb9d0354a6ee3851dac5c90a61492193dd55931f5" name="gga8650faf52b0b6b23df376eebeb9d0354a6ee3851dac5c90a61492193dd55931f5"></a>js_ReplayOriginal&#160;</td><td class="fielddoc"><p>Maintains the same timing as the messages were received. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga89db3bd6bf11af3ac5eb3ab560d16332" name="ga89db3bd6bf11af3ac5eb3ab560d16332"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga89db3bd6bf11af3ac5eb3ab560d16332">&#9670;&#160;</a></span>kvOperation</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__types_group.html#ga89db3bd6bf11af3ac5eb3ab560d16332">kvOperation</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determines the type of operation of a <a class="el" href="group__types_group.html#gad489fb4074f27427560ca71797db6191">kvEntry</a> </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga89db3bd6bf11af3ac5eb3ab560d16332a0b7a6bef67e4220f5f0c4075f2ed16b6" name="gga89db3bd6bf11af3ac5eb3ab560d16332a0b7a6bef67e4220f5f0c4075f2ed16b6"></a>kvOp_Unknown&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga89db3bd6bf11af3ac5eb3ab560d16332acc0e1da3c292cb7eb19d909c9dfd788a" name="gga89db3bd6bf11af3ac5eb3ab560d16332acc0e1da3c292cb7eb19d909c9dfd788a"></a>kvOp_Put&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga89db3bd6bf11af3ac5eb3ab560d16332a4efb91331f3307128c75af5b23362f83" name="gga89db3bd6bf11af3ac5eb3ab560d16332a4efb91331f3307128c75af5b23362f83"></a>kvOp_Delete&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga89db3bd6bf11af3ac5eb3ab560d16332aee19ab8144bf518e251ea2004309b657" name="gga89db3bd6bf11af3ac5eb3ab560d16332aee19ab8144bf518e251ea2004309b657"></a>kvOp_Purge&#160;</td><td class="fielddoc"></td></tr>
</table>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.10-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">NATS.IO Supported By Synadia Communications Inc.
    <a href="http://www.nats.io">
    </a></li>
  </ul>
</div>
</body>
</html>
